JavaFX WebView弹出处理程序未尝试加载页面
我有一个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 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...")