JavaFX WebView弹出处理程序未尝试加载页面

JavaFX WebView弹出处理程序未尝试加载页面,java,javascript,webview,javafx,popup,Java,Javascript,Webview,Javafx,Popup,我有一个WebView对象,我在其中添加了一个弹出处理程序,因此: WebView view = new WebView(); WebEngine engine = view.getEngine(); engine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() { public WebEngine call(PopupFeatures param) { Stage stage

我有一个WebView对象,我在其中添加了一个弹出处理程序,因此:

WebView view = new WebView();
WebEngine engine = view.getEngine();

engine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {

    public WebEngine call(PopupFeatures param) {

        Stage stage = new Stage(StageStyle.UTILITY);
        WebView popupView = new WebView();

        stage.setScene(new Scene(popupView));
        stage.show();

        return popupView.getEngine();

     }

});
我知道WebView无法加载这样的位置,这不是主要问题。我可以捕获一个错误的DurLexException,然后自己传递命令。问题是弹出式处理程序似乎从未传递目标。我已尝试向locationProperty和workDoneProperty添加侦听器,并向原始引擎和popupView引擎添加OneError侦听器。弹出窗口似乎从未被传递到window.open函数的目标,而popupView引擎从未加载任何内容

是否有方法获取回调接口中window.open函数的目标,或者捕获阻止弹出窗口传递到目标的任何错误


谢谢

conf:
协议创建您的应用程序,然后将不会生成异常,您应该能够拦截并适当响应请求。

这确实很烦人;从未遇到过它,但有一个想法是:(1)在隐藏状态下创建新的
Stage
(2)向
WebEngine.location
属性添加一个侦听器(3)在侦听器中,您可以实际获取URL并决定要做什么,即显示弹出窗口,或销毁弹出窗口并运行Lync。感谢您的建议。我在
回调
函数中向popupView的location属性添加了一个侦听器。但是,侦听器从不触发。弹出处理程序似乎只传递
窗口的目标。如果URL进行某种形式的有效性检查,则打开
函数到
回调返回的
WebEngine
。我想知道是否有办法拦截
窗口。在调用
回调
函数之前打开
函数。哈,真有趣!和往常一样,朱厄斯海来营救!
window.open("conf:sip...")