J'essaie d'appeler JavaScript dans JavaFx WebView depuis Java, mais je reçois:
Exception dans le fil "JavaFX Application Thread" netscape.javascript.JSException: TypeError: indéfini n'est pas une fonction À com.sun.webkit.dom.JSObject.fwkMakeException (JSObject.java:128) À com.sun.webkit.WebPage.twkExecuteScript (méthode native) À com.sun.webkit.WebPage.executeScript (WebPage.java:1439) À javafx.scene.web.WebEngine.executeScript (WebEngine.java:982)
Fichier .java
private WebView emailSubject() { String pageURL = "D:myproject\\src\\resources\\WEB_INF\\forms\\readMail\\emailBody.html"; pageURL = pageURL.replace("\\", "/"); webView = new WebView(); webView.setMaxHeight(52); webEngine = webView.getEngine(); emailSubject = getHTMLMailSubject(); webEngine.getLoadWorker().stateProperty().addListener((ov, oldState, newState) -> { if (newState == State.SUCCEEDED) { webEngine.executeScript("testCheckMate(\"" + emailSubject + "\");"); } }); webEngine.load("file:" + pageURL); return webView; }
Exception qui indique cette ligne:
webEngine.executeScript("testCheckMate(\"" + emailSubject + "\");");
Le HTML:
<!-- Latest compiled and minified JavaScript --> <script src="../../baseJS/JQuery/jquery-1.11.3.js"></script> <script src="../../baseJS/JQuery/jquery.min.js"></script> <div class="panel panel-success"> <div class="panel-heading"> <h3 class="panel-title">Home Alone</h3> </div> </div> <script> $(document).ready(function() { window.testCheckMate = function (data) { $(".panel-title" ).append(data); }; }); </script>
Qu'est-ce que je fais mal? Merci d'avance à tous.
Veuillez noter que j'ai essayé:
load();
déjà
$(".panel-title" ).load(data);
Ainsi qu'avec
testCheckMate
dehors de $(document).ready(function()
, mais encore rien.
testCheckMate = function (data) { $(".panel-title" ).load(data); };