【问题标题】:webview not opening the popup window in javafxwebview没有在javafx中打开弹出窗口
【发布时间】:2013-04-28 13:09:40
【问题描述】:

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

我如何打开新的弹出窗口,当尝试在默认网络浏览器(如 chrome、IE 浏览器)中打开相同的网页时,他们正在打开弹出窗口。

为了创建弹出窗口,我使用以下代码。

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;

            }
    });

【问题讨论】:

    标签: java webview javafx-2 javafx


    【解决方案1】:

    您需要自己创建 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 2 应该打开的 URL?我尝试创建嵌入在 jframe 等中的自己的 webview,然后将其作为 myFrame.myJfxPane.getEngine() 之类的东西返回,但不知何故 URL 没有传递给引擎
    • @Myoch 请将其作为一个单独的问题提出并提供对您不起作用的代码。
    猜你喜欢
    • 2015-07-16
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    相关资源
    最近更新 更多