webview没有打开javafx中的弹出窗口 [英] webview not opening the popup window in javafx

查看:1139
本文介绍了webview没有打开javafx中的弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to open a webpage in webview using javafx . This webpage opens a new popup window when click on a hyperlink

当尝试在默认的Web浏览器(如chrome)中打开同一网页时,如何打开新的弹出窗口IE正在打开弹出窗口。

How can i open the new popup , when trying to open the same web page in default web browser like chrome , IE they are opening the pop up.

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

For creating the pop up i am using the following code.

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;

            }
    });


推荐答案

您需要自己创建WebView弹出窗口并提供WebEngine来自回调。如果您需要新窗口,请使用该WebView创建新Stage(不是Swing one,JOptionPane不能存储JavaFX WebView)。

You need to create WebView popup window yourself and provide WebEngine from callback. If you need new window, create new Stage with that WebView (not Swing one, JOptionPane can't store 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没有打开javafx中的弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆