0

我想用这个:

window.onbeforeunload = function () {
    return "u sure?";
}

仅在刷新、前进/后退事件上。目前,此代码可以捕获所有内容。我不希望它捕获链接点击或形成帖子事件。另外,我需要在该函数中包含所有代码,所以我在想,也许有这样的东西(伪代码):

window.onbeforeunload = function () {
    if(it was not a click && it was not a form post)
       return "u sure?";
}

所以,重新假设:是否有可能获得导致 .onbeforeunload 触发的事件?

4

1 回答 1

1

我能想到的最简单的解决方案是取消绑定onbeforeunload表单提交或链接点击的事件。

Array.prototype.forEach.call(document.querySelectorAll('form'), function (elem) {
    elem.addEventListener('submit', function () {
        window.onbeforeunload = function () {}
    });
});
于 2013-04-16T00:59:36.893 回答