2011-08-30 64 views

回答

0

並非真的:它不是一個真正能夠很好地轉化爲Java的範例。您可能只想包含jQuery或Zepto,並使用其中一個函數的ready函數。

3

document.ready()類似於GWT EntryPoint中的onModuleLoad()方法。當文檔準備就緒時,它們都會執行。

+0

,但我不希望啓動一個新的應用程序,我僅僅指剛要看到,如果iframe的DOM已準備就緒。 –

+0

嗯,我認爲你的GWT代碼在iframe中(所以它的onModuleLoad方法將在調用時調用)。我不確定,只要你不能在iframe中運行javascript,如果你想要做的事情(等到iframe準備就緒)是可能的。至少,我敢肯定,這不會可靠地工作(也不與jQuery)。 [這個答案]有類似的情況(http://stackoverflow.com/questions/5042139/gwt-easiest-way-to-do-a-simple-loading-screen-until-file-is-loaded/5044660 #5044660),看起來好像這不適用於Chrome。 –

+0

在JavaScript中應該沒有問題。我可以獲取iframe的窗口對象並向其添加事件。請參閱http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe/205221#205221 –

3

您可以創建deferred command以在瀏覽器事件循環返回時執行。

boolean ready=false; 
public void onModuleLoad() { 
    Scheduler.get().scheduleDeferred(new ScheduledCommand() { 
     @Override 
     public void execute() { 
      ready=true; 
      Window.alert(ready+"");  
     } 
    }); 
    for (int i=0;i<9999;i++){ 
     RootPanel.get().add(new Label(ready+"")); 
    } 
} 

這個例子在DOM則以9999個標籤後,纔再提醒真實

+0

你能解釋一下如何這可以幫助我找出domready是否被解僱一個iframe? –

+0

我不認爲這個問題是關於捕獲已準備好的事件的。關於您的評論,我認爲您可以使用[javascript](http://www.javascriptkit.com/dhtmltutors/domready.shtml)來捕捉活動和[JSNI](http://code.google.com/webtoolkit/) doc/latest/DevGuideCodingBasicsJSNI.html#calls)在事件觸發時調用GWT方法 – pistolPanties

+0

當然,我可以這樣做JSNI,但問題是關於GWT中的buildin解決方案。 –