난 당신이 페이지로드에서 보이지 않는 기존 HTML에서 뭔가에 클릭 말에 의해 가시화 팝업을 의미 대화로 가정합니다
. 이 작업을 수행하는 간단한 전략은 기존 HTML을 래핑하는 것입니다.
옵션 1에 대한 경험이 없습니다. 2와 같이 기존 HTML에서 변경해야하는 것은 모두 JS 가져 오기를 추가하는 것입니다.
<script type="text/javascript" language="javascript" src="/com.your.org.Module/com.your.org.module.client.Module.nocache.js"></script>
그런 다음 대화 상자를 활성화하려는 일부 클릭 가능한 요소에 ID를 추가하십시오 (예 :
<button id="launchDialog">Show Dialog</button>
마지막으로 ID가있는 빈 div를 추가하여 대화 상자를 DOM에 삽입하십시오. (스타일 쇼()와 숨기기 :
<div id="dialog"></div>
그런 다음 당신은 당신의 모듈에 필요한 모든 당신은 "없음 표시"하여 팝업 사업부의 가시성을 재생할 수 있습니다, 마지막으로
public class Module implements EntryPoint {
@Override
public void onModuleLoad() {
Button b = Button.wrap(DOM.getElementById("launchDialog"));
b.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
RootPanel panel = RootPanel.get("dialog");
Widget w = ... // your dialog widget here
panel.add(w);
}
});
}
}
입니다) 메소드를 위젯에 추가하십시오.
안녕하세요 Bluu, 먼저 답변 해 주셔서 감사합니다. 지금까지 비슷한 결론을 보았습니다. 그러나 제가 통합 할 html 페이지가 다른 서버 (심지어 IIS)에 있다는 것을 여러분에게 물어보고 싶습니다 (옵션 2를 사용할 수 있다고 가정). 내 서버가있는 모듈을 어떻게 말합니까? SOP가 문제가 아니라고 가정합니다 고마워요 – Ittai
죄송합니다, 지금까지 귀하의 의견을 통보하지 못했습니다! 그래서 당신은 다른 서버에서 Javascript를 완전히로드하는 방법을 묻고 있습니까? 같은 서버에서 GWT 만로드 했으므로 (예 : 서버 src = "/ com.foo.bar.Module/..."의 경로 사용) 실제로 대답 할 수 없습니다. 이 경우 GWT를 컴파일 한 위치는 중요하지 않습니다. 그것이 어디에 있는지 알 수 있습니다. – Bluu
GWT 구성 요소를 div에 원격으로 첨부하도록 할 수 있습니다. "xs"링커를 사용해야합니다. (http://code.google.com/webtoolkit/doc/latest/FAQ_Server.html#What_is_the_Same_Origin_Policy,_and_how_does_it_affect_GWT를 참조하십시오.) Button과의 크로스 사이트 연결을 수행하지 않았습니다. wrap()하지만 RootPanel.get ("yourid"). add (yourcomponent) 잘 작동합니다. xs 링커를 사용하여 끝내면 다른 제한이 있습니다 (코드 분할을 사용할 수 없습니다). 희망이 도움이됩니다. – mooreds