退出弹出窗口和内部链接

时间:2013-11-19 21:17:41

标签: javascript

当用户退出页面时,我有此退出弹出脚本

var triedToLeave = false;
function onBeforeUnload(){
    triedToLeave = true;
    return "you can put your own message here";
}
setInterval( function (){
     if( triedToLeave ){
         window.removeEventListener( "beforeunload", onBeforeUnload, false );
         document.location.href = "http://stackoverflow.com/";
     }
}, 2000 );
window.addEventListener( "beforeunload", onBeforeUnload, false);

但是,如果您点击网站中的链接,则会触发弹出窗口。有人可以告诉我我需要添加什么来防止内部链接触发退出弹出窗口?非常感谢提前。

1 个答案:

答案 0 :(得分:0)

为禁用beforeunload处理程序的所有链接添加单击处理程序。

function removeBeforeUnload() {
    window.removeEventListener( "beforeunload", onBeforeUnload, false );
}

window.onload = function() {
    var allLinks = document.getElementsByTagName('a');
    for (var i = 0; i < allLinks.length; i++) {
        allLinks[i].addEventListener("click", removeBeforeUnload, false);
    }
};