2014-07-17 33 views
2

我想在DJ原生swing jwebbrowser中執行我的javascript代碼,但我應該等待頁面加載,我該如何設置監聽器呢? 我嘗試了以下操作,但加載後總是運行腳本,操作也很遲!怎麼能理解DJ本機swing jwebbrowser已經完全加載網頁?

webBrowser.addWebBrowserListener(new WebBrowserListener(){ 

     @Override 
     public void commandReceived(WebBrowserCommandEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void loadingProgressChanged(WebBrowserEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void locationChangeCanceled(WebBrowserNavigationEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void locationChanged(WebBrowserNavigationEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void locationChanging(WebBrowserNavigationEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void statusChanged(WebBrowserEvent arg0) { 
      // TODO Auto-generated method stub 
      if(webBrowser.getLoadingProgress() == 100) 
       webBrowser.executeJavascript("some js code");"); 
     } 

     @Override 
     public void titleChanged(WebBrowserEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void windowClosing(WebBrowserEvent arg0) { 
      // TODO Auto-generated method stub 
      frame.dispose(); 
     } 

     @Override 
     public void windowOpening(WebBrowserWindowOpeningEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) { 
      // TODO Auto-generated method stub 

     } 

    }); 

我該怎麼辦?

回答

2

我應該重寫loadingProgressChanged(WebBrowserEvent爲arg0)不statusChanged(WebBrowserEvent爲arg0)

@Override public void loadingProgressChanged(WebBrowserEvent arg0) { // TODO Auto-generated method stub if(webBrowser.getLoadingProgress() == 100) webBrowser.executeJavascript("some js code"); }

,但仍需要時間來加載我的HTML!