Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改页面后JavaFX脚本不工作_Java_Javascript_Webview_Javafx_Javafx Webengine - Fatal编程技术网

更改页面后JavaFX脚本不工作

更改页面后JavaFX脚本不工作,java,javascript,webview,javafx,javafx-webengine,Java,Javascript,Webview,Javafx,Javafx Webengine,如上所述,一旦用户单击了更改页面的内容,使用JavaFX的脚本就不再有效 hello.html <div onclick="app.byeBye()">bye</div> 我必须怎么做才能解决这个问题?Uluk Biy的回答是正确的,但我不能对答案发表评论。如果这有帮助的话,一定要给他竖起大拇指 在webview的引擎成功加载url后,尝试获取窗口对象并设置应用程序。即当引擎的状态为state.successed时。请参阅WebEngine的javadoc WebEng

如上所述,一旦用户单击了更改页面的内容,使用JavaFX的脚本就不再有效

hello.html

<div onclick="app.byeBye()">bye</div>

我必须怎么做才能解决这个问题?

Uluk Biy的回答是正确的,但我不能对答案发表评论。如果这有帮助的话,一定要给他竖起大拇指


在webview的引擎成功加载url后,尝试获取窗口对象并设置应用程序。即当引擎的状态为state.successed时。请参阅WebEngine的javadoc


WebEngine API页面位于此处:

在webview的引擎成功加载url后,尝试获取窗口对象并设置应用程序。即当引擎的状态为state.successed时。请参阅WebEngine的javadoc。
<div onclick="app.hello()">hello</div>
 public class JavaApp{

    public void hello(){
        //process some stuff here
        setURL("/hello.html");
    }

    public void byeBye(){
        //process some stuff here
        setURL("/byebye.html");
    }

    private void setURL(final String uriString){
       Platform.runLater(new Runnable(){

            public void run(){
                JSObject win = (JSObject) webViewPanel.getWebEngine().executeScript("window");
                win.setMember("app",  new JavaApp());
                webViewPanel.loadURL(Browser.class.getResource(uriString).toExternalForm());
            }
        });
    }
}