当用户关闭选项卡时,我 运行 执行什么 JavaScript 代码?

What JavaScript code do I run when the user closes the tab?

问题总结

我正在尝试使用 WKWebView 和 Swift 创建一个 macOS 选项卡式 Web 浏览器。一切正常,除了网页不知道我关闭了选项卡。我想告诉网页我关闭了标签

描述您尝试过的内容

我还没有尝试过任何东西,因为我不知道该怎么做

显示一些代码

我试过这样做

webView.removeFromSuperView()

但是网页不知道我关闭了标签


我知道的不多javascript所以请附上代码而不是解释

Javascript 脚本使用 onbeforeunloadonunload 事件来触发浏览器关闭。

由于您知道浏览器即将关闭,因此您可以自行调度此事件。例如,对于 beforeunload 事件:

let script = """
   const event = new Event("beforeunload", { cancellable: true });
   const cancelled = !window.dispatch(event);
   // return back whether the user cancelled
   cancelled;
"""

当您需要关闭浏览器时,调用脚本:

let webView = WKWebView()
// ... other config
webView.evaluateJavaScript(script, completionHandler: { result, error in
   guard let cancelled = result else { return }
  
   if cancelled == 1 {
     // ... do whatever
   }
})