gpt4 book ai didi

javascript - 如何在关闭浏览器时触发卸载方法?

转载 作者:行者123 更新时间:2023-11-28 05:58:11 25 4
gpt4 key购买 nike

观察到的场景:

  1. 关闭浏览器时,会触发 beforeunload 事件,但不会触发 unload 事件。

  2. 关闭选项卡时,beforeunload 事件和 unload 事件都会被触发。

问题:

如何在关闭浏览器时触发 unload 方法?

代码:

    var inFormOrLink = false;
var flag = false;

$(document).ready(function () {
$(window).bind("beforeunload", function () {
return "You are about to close the window";
});
$(window).on("unload", function () {
if (!inFormOrLink)
window.open('../Account/Login?admin=admin', "_blank");
});
});

$(function () {
$("a").click(function () {

if (!flag) {
inFormOrLink = true;
$(window).unbind('beforeunload');
$(window).unbind('unload');
}
else {
// inFormOrLink = false;
$(window).bind('beforeunload');
$(window).bind('unload');
}
});

$(".btn").click(function () {

if (!flag) {
inFormOrLink = true;
$(window).unbind('beforeunload');
$(window).unbind('unload');
}
else {
inFormOrLink = false;
flag = false;
$(window).bind('beforeunload');
$(window).bind('unload');
}

});
$("body").keydown(function (e) {
if (e.which == 116 || e.which == 117) {
inFormOrLink = true;
}
else if (e.ctrlKey && e.keyCode == 82) {
inFormOrLink = true;
}
else if (e.which == 8) {
var tag = e.target.tagName.toLowerCase();
inFormOrLink = true;
if (tag != "input") {
e.preventDefault();
}
}
else {
inFormOrLink = false;
$(window).bind('unload');
}
});
});

'

最佳答案

理论上,onunload 事件应该在您提到的情况下运行,但是,有很多浏览器,并且每个浏览器都是由不同的团队实现的。由于您在一些浏览器中发现了错误,因此我建议您将事件处理程序附加到 beforeunload 而不是 unload。在这种情况下,您可以解决该问题。另一种可能性是运行 unload 事件,如下所示:

$(window).unload();

关于javascript - 如何在关闭浏览器时触发卸载方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37480921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com