是否有取消window.onbeforeunload的回调

2024-01-12

我没有实际的用例,但我很好奇,如果用户在触发 window.onbeforeunload 时单击“留在此页面上”,是否有办法做出反应(回调)。

http://jsfiddle.net/rWHU9/ http://jsfiddle.net/rWHU9/

function warning(){
    if(true){
      console.log('leaving');
      return "You are leaving the page";
    }
}
window.onbeforeunload = warning;​

停留页面没有回调,但离开页面有回调,window.unload.

尝试设置超时beforeunload,然后在卸载时将其清除。如果你留下来,超时就会运行,否则就会被清除。

var timeout;

function warning() {
    timeout = setTimeout(function() {
        alert('You stayed');
    }, 1000);
    return "You are leaving the page";
}

function noTimeout() {
    clearTimeout(timeout);
}

window.onbeforeunload = warning;
window.unload = noTimeout;​

DEMO: http://jsfiddle.net/aPwfz/1/ http://jsfiddle.net/aPwfz/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有取消window.onbeforeunload的回调 的相关文章

随机推荐