多分答えが遅くなるかもしれませんが、私はこの方法がとても簡単だと思います。次に、JavaでJSリスナクラスを作成
webengine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue<? extends State> observable,
State oldValue, State newValue) {
JSObject jsobj = (JSObject) webengine.executeScript("window");
jsobj.setMember("java", new JSListener());
}
});
:
はJavaで
のJavaをJavaScriptのリスナーを追加します。
JSListenerのJava:あなたが外からHTMLをロードする場合、あなたは、あなたにそれを変更することはできません
var javaReady = function(callback){
if(typeof callback =='function'){
if(typeof java !='undefined'){
callback();
} else {
var javaTimeout = 0;
var readycall = setInterval(function(){
javaTimeout++;
if(typeof java !='undefined' || javaTimeout > 1000){
try{
callback();
} catch(s){};
clearInterval(readycall);
}
},1);
}
}
};
var errorlistener = function(msg, url, line){
javaReady(function(){
java.log(msg +", url: "+url+ ", line:" + line);
});
};
//overide onerror
var onerror = errorlistener;
:
public class JSListener {
public void log(String text){
System.out.println(text);
}
}
は、htmlファイルに
JavascriptをJavaScriptを追加しますこのようなコードを使用することができます。
var testsss = window.open("http://testError.com");
testsss.onerror = errorlistener;
が、最初のあなたは、それはあなたがここで見ることができます作るために、JavaでsetCreatePopupHandlerを追加する必要があります。webview not opening the popup window in javafx
Firebugを起動する前に、ドキュメントが読み込まれるまで待つ必要があります。それを行う方法については、jewelseaの回答を参照してください:http://stackoverflow.com/a/18396900/633107 – Splaktar
console.log( "something")はあなたのために機能しますか? – ZiglioUK
@ZiglioNZ新しい質問として新しい質問をしてください。 – jewelsea