Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
webview未在javafx中打开弹出窗口_Java_Webview_Javafx 2_Javafx - Fatal编程技术网

webview未在javafx中打开弹出窗口

webview未在javafx中打开弹出窗口,java,webview,javafx-2,javafx,Java,Webview,Javafx 2,Javafx,我正在尝试使用javafx在webview中打开一个网页。单击超链接时,此网页将打开一个新的弹出窗口 当我试图在chrome等默认浏览器中打开同一网页时,如何打开新的弹出窗口(即他们正在打开弹出窗口) 对于创建弹出窗口,我使用以下代码 Group group= new Group(); Scene scene= new Scene(group); fxpanel.setScene(scene); WebView webview = new WebView (); group.getChi

我正在尝试使用javafx在webview中打开一个网页。单击超链接时,此网页将打开一个新的弹出窗口

当我试图在chrome等默认浏览器中打开同一网页时,如何打开新的弹出窗口(即他们正在打开弹出窗口)

对于创建弹出窗口,我使用以下代码

Group group= new Group();
Scene scene= new Scene(group);
fxpanel.setScene(scene);    
WebView webview = new WebView ();
group.getChildren().add(webview);
it().getScreenSize().height);  
webview.setVisible(true);
webview.getEngine().setOnAlert(null);

eng= webview.getEngine();
eng.setJavaScriptEnabled(true);




try{
   String url ="http://www.lawcrux.com/mkwebchatblog/loginp.aspx";


         eng.load(url);

         eng.setCreatePopupHandler(
        new Callback<PopupFeatures, WebEngine>() {
            @Override
            public WebEngine call(PopupFeatures config) {

                JOptionPane.showMessageDialog(null,"clicked");
                return eng;

            }
    });
Group Group=新组();
场景=新场景(组);
fxpanel.setScene(场景);
WebView WebView=newwebview();
group.getChildren().add(webview);
it().getScreenSize().height);
setVisible(true);
webview.getEngine().setOnAlert(null);
eng=webview.getEngine();
eng.setJavaScriptEnabled(true);
试一试{
字符串url=”http://www.lawcrux.com/mkwebchatblog/loginp.aspx";
加载(url);
eng.setCreatePopupHandler(
新回调函数(){
@凌驾
公共WebEngine调用(PopupFeatures配置){
showMessageDialog(null,“单击”);
返回引擎;
}
});

您需要自己创建WebView弹出窗口,并通过回调提供WebEngine。如果需要新窗口,请使用该WebView创建新阶段(不是Swing阶段,JOptionPane无法存储JavaFX WebView)

请参见下一个示例:

    WebView wv = new WebView();
    wv.getEngine().setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {

        @Override
        public WebEngine call(PopupFeatures p) {
            Stage stage = new Stage(StageStyle.UTILITY);
            WebView wv2 = new WebView();
            stage.setScene(new Scene(wv2));
            stage.show();
            return wv2.getEngine();
        }
    });


    StackPane root = new StackPane();
    root.getChildren().add(wv);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show();
    wv.getEngine().load("http://www.i-am-bored.com/pop_up_blocker_test.html");
WebView wv=newwebview();
wv.getEngine().setCreatePopupHandler(新回调函数(){
@凌驾
公共WebEngine调用(popupp){
阶段=新阶段(StageStyle.UTILITY);
WebView wv2=新WebView();
舞台场景(新场景(wv2));
stage.show();
返回wv2.getEngine();
}
});
StackPane root=新的StackPane();
root.getChildren().add(wv);
场景=新场景(根,300,250);
setTitle(“你好,世界!”);
初级阶段。场景(场景);
primaryStage.show();
wv.getEngine()加载(“http://www.i-am-bored.com/pop_up_blocker_test.html");

如何检索webview 2应该打开的URL?我尝试创建嵌入jframe等中的自己的webview,然后以类似myFrame.myJfxPane.getEngine()的形式返回它,但不知何故,URL没有传递给Engine@Myoch请单独提问,并提供不适合您的代码。