java - webview 没有在 javafx 中打开弹出窗口

标签 java webview javafx-2 javafx

我正在尝试使用 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;

            }
    });

最佳答案

您需要自己创建 WebView 弹出窗口并从回调中提供 WebEngine。如果您需要新窗口,请使用该 WebView 创建新的 Stage(不是 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");

关于java - webview 没有在 javafx 中打开弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16370622/

相关文章:

java - 如何在netbeans IDE开发的java swing项目中导入eclipse.org库

java - 如何在 Spring Controller 中注入(inject) Cache-Control max-age header ?

java - 为什么 java 在我的变量声明中提示原始类型?

xamarin.forms - Xamarin Forms UIWebview 文本非常小

javascript - Android 4.2 股票浏览器。 Canvas clearRect() 有时不起作用

animation - 如何制作带有动画 "close up"的 VBox ?

unit-testing - 使用 TestNG 对 JavaFx 2 应用程序进行单元测试

Java Android Json OutOfMemoryError

webview - Electron BrowserView 渲染器进程与 WebView

java - 无法在 WinXP 32 位上为 JavaFX 应用程序构建 native 包