The following code works on Linux, but the callback does not work on Windows (VirtualBox VM). Can you please tell me why?
Java:
public class WebViewTest extends Application {
private Label label = new Label ("...");
public static void main (String[] args) {
launch (args);
}
@Override
public void start (Stage stage) throws Exception {
WebView webView = new WebView ();
WebEngine webEngine = webView.getEngine ();
webEngine.setJavaScriptEnabled (true);
JSObject window = (JSObject) webView.getEngine ().executeScript ("window");
window.setMember ("java", new Callback ());
webEngine.load (getClass ().getResource ("WebViewTest.html").toString ());
BorderPane pane = new BorderPane ();
pane.setCenter (webView);
pane.setBottom (label);
Scene scene = new Scene (pane);
stage.setScene (scene);
stage.show ();
}
public class Callback {
public void click () {
label.setText ("Clicked :-)");
}
}
}
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="UTF-8">
</head>
<body>
<button onclick="window.java.click ();">Test</button>
</body>
</html>