Reputation: 1307
I want to execute my javascript code in DJ native swing jwebbrowser, but I should wait for the page loading, how can I set listener for it? I try the following, but after loading it always run the script also it operate late!
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
}
});
what should i do?
Upvotes: 2
Views: 1030
Reputation: 1307
I should override loadingProgressChanged(WebBrowserEvent arg0) not statusChanged(WebBrowserEvent arg0)
@Override
public void loadingProgressChanged(WebBrowserEvent arg0) {
// TODO Auto-generated method stub
if(webBrowser.getLoadingProgress() == 100)
webBrowser.executeJavascript("some js code");
}
but still it takes time to load my html!
Upvotes: 2