当用户关闭选项卡时,我 运行 执行什么 JavaScript 代码?
What JavaScript code do I run when the user closes the tab?
问题总结
我正在尝试使用 WKWebView 和 Swift 创建一个 macOS 选项卡式 Web 浏览器。一切正常,除了网页不知道我关闭了选项卡。我想告诉网页我关闭了标签
描述您尝试过的内容
我还没有尝试过任何东西,因为我不知道该怎么做
显示一些代码
我试过这样做
webView.removeFromSuperView()
但是网页不知道我关闭了标签
我知道的不多javascript所以请附上代码而不是解释
Javascript 脚本使用 onbeforeunload
和 onunload
事件来触发浏览器关闭。
由于您知道浏览器即将关闭,因此您可以自行调度此事件。例如,对于 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
}
})
问题总结
我正在尝试使用 WKWebView 和 Swift 创建一个 macOS 选项卡式 Web 浏览器。一切正常,除了网页不知道我关闭了选项卡。我想告诉网页我关闭了标签
描述您尝试过的内容
我还没有尝试过任何东西,因为我不知道该怎么做
显示一些代码
我试过这样做
webView.removeFromSuperView()
但是网页不知道我关闭了标签
我知道的不多javascript所以请附上代码而不是解释
Javascript 脚本使用 onbeforeunload
和 onunload
事件来触发浏览器关闭。
由于您知道浏览器即将关闭,因此您可以自行调度此事件。例如,对于 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
}
})