Note: Advice in this article will only work for JxBrowser 6. See the corresponding article for JxBrowser 7 here.(注意:本文中的建议仅适用于JxBrowser6,JxBrowser7相应文章请点击这里。)
To handle pop-up windows in your JavaFX application you have two options:(要处理JavaFX应用程序中的弹出窗口,您有两个选择:)
1. Register default JavaFX pop-up handler implementation: (1.注册默认的JavaFX弹出处理程序实现:)
browser.setPopupHandler(new com.teamdev.jxbrowser.chromium.javafx.DefaultPopupHandler());
2. Register your own implementation where you decide how exactly you would like to display a new pop-up window: (2.注册您自己的实现,在其中决定要如何精确地显示新的弹出窗口:)
browser.setPopupHandler(new PopupHandler() { public PopupContainer handlePopup(PopupParams params) { return new PopupContainer() { public void insertBrowser(final Browser browser, final Rectangle initialBounds) { Platform.runLater(new Runnable() { @Override public void run() { final Stage stage = new Stage(); StackPane root = new StackPane(); Scene scene = new Scene(root, 800, 600); BrowserView browserView = new BrowserView(browser); root.getChildren().add(browserView); stage.setScene(scene); stage.setTitle("Popup"); if (!initialBounds.isEmpty()) { stage.setX(initialBounds.getLocation().getX()); stage.setY(initialBounds.getLocation().getY()); stage.setWidth(initialBounds.width); stage.setHeight(initialBounds.height); } stage.setOnCloseRequest(new EventHandler<javafx.stage.WindowEvent>() { public void handle(javafx.stage.WindowEvent event) { browser.dispose(); } }); browser.addDisposeListener(new DisposeListener<Browser>() { public void onDisposed(DisposeEvent<Browser> event) { Platform.runLater(new Runnable() { public void run() { stage.close(); } }); } }); stage.show(); } }); } }; } });