在onbeforeunload纯javascript上添加异常

时间:2014-03-23 16:17:35

标签: javascript exception

我有这个:

window.onbeforeunload = function(e) {
    return 'You are leaving now.';
};

<a>链接上的例外jquery。

$('a').click(function () { window.onbeforeunload = null; });

如何在纯javascript中执行jquery异常?

请指教。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用getElementsByTagNamequerySelectorAll获取a元素的列表,并使用该函数将click事件挂钩到它们上你的事件处理程序。

假设IE9 +:

function unhookBeforeUnload() {
    window.onbeforeunload = null;
}
Array.prototype.forEach.call(document.querySelectorAll('a'), function(anchor) {
    anchor.addEventListener("click", unhookBeforeUnload);
});

如果你必须支持IE8(但不是更早),你必须为forEach添加一个垫片或使用一个简单的循环,你必须处理它没有{{1 }}。通常情况下,我不会根据具体情况处理后者,我有一个功能来连接处理它的事件处理程序。 (例如,就像jQuery一样。)但仅仅是为了完整性:

addEventListener

这适用于您可能会找到的任何浏览器,甚至是IE6。