🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
该onbeforeunload被卸载时,文件是关于事件触发。此事件允许您在确认对话框中显示消息,以通知用户他/她是要留下还是离开当前页面。JxBrowser API允许使用DialogHandler API 处理此对话框。默认情况下,将显示该对话框。使用DialogHandler的自定义实现,您可以以自己的方式处理此对话框。例如,您可以显示自定义消息对话框或禁止显示对话框,并且不允许卸载网页。 以下示例演示了如何处理onbeforeunload对话框: ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.CloseStatus; import com.teamdev.jxbrowser.chromium.UnloadDialogParams; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import com.teamdev.jxbrowser.chromium.swing.DefaultDialogHandler; import javax.swing.*; import java.awt.*; /** * The sample demonstrates how to catch onbeforeunload dialog. */ public class BeforeUnloadSample { public static void main(String[] args) { Browser browser = new Browser(); final BrowserView view = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setSize(700, 500); frame.setVisible(true); browser.setDialogHandler(new DefaultDialogHandler(view) { @Override public CloseStatus onBeforeUnload(UnloadDialogParams params) { String title = "Confirm Navigation"; String message = params.getMessage(); int returnValue = JOptionPane.showConfirmDialog(view, message, title, JOptionPane.OK_CANCEL_OPTION); if (returnValue == JOptionPane.OK_OPTION) { return CloseStatus.OK; } else { return CloseStatus.CANCEL; } } }); browser.loadHTML("<html><body onbeforeunload='return myFunction()'>" + "<a href='http://www.google.com'>Click here to leave</a>" + "<script>function myFunction() { return 'Leave this web page?'; }" + "</script></body></html>"); } } ```