gpt4 book ai didi

javascript - 在某些链接上禁用浏览器 onUnload?

转载 作者:行者123 更新时间:2023-11-29 10:47:51 24 4
gpt4 key购买 nike

我正在开发一个具有 DNS 记录管理器的虚拟主机面板。我必须使用大量 JavaScript 才能使它的性能几乎像桌面应用程序。

我真的很想在浏览器运行 beforeunload 时显示自定义对话框窗口,但是经过一些研究后我发现我无法使用浏览器的默认对话框窗口。

所以下面这段 JavaScript 代码就是这样做的,我的问题是我需要确保它不会在某些链接点击时被触发。

我希望能够维护一个 CSS 类名数组,如果单击的链接在这个数组中,那么它将不会显示 onunload 事件。

我相信这对 JavaScript 开发人员来说很容易。谁能告诉我该怎么做?

//sample Class array
safeLinks = ['test', 'test2', 'test3', 'test4', 'test5'];

// onunload event
$(window).on('beforeunload', function(){
return 'Are you sure you want to leave?';
});

最佳答案

您可以在单击时删除事件处理程序:

var safeLinks = ['.test', '.test2', '.test3', '.test4', '.test5'];

function promptBeforeClose() {
return 'Are you sure you want to leave?';
}

$(window).on('beforeunload', promptBeforeClose);

$(document).on('click', safeLinks.join(', '), function(e) {
$(window).off('beforeunload', promptBeforeClose);
});

此外,如果这些安全链接有一个共同的祖先,请使用它而不是 document 作为委托(delegate) parent ,否则人们会提示。 ;)

关于javascript - 在某些链接上禁用浏览器 onUnload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116230/

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