我想警告用户,如果他们通过关闭浏览器或使用浏览器的历史记录按钮离开页面using the following JavaScript :
window.onbeforeunload = function(e) {
return 'Ask user a page leaving question here';
};
但无论如何,我网站上的链接和按钮都应该有效。我怎样才能实现这一目标?
最佳答案
首先想到的方法是设置一个变量来告诉您是否单击了链接:
var linked = false;
window.onbeforeunload = function(e) {
if (!linked)
return 'Ask user a page leaving question here';
};
document.addEventListener('click', function(e) {
if (e.target.tagName === "A")
linked = true;
}, false);
也就是说,在文档级别设置一个单击事件处理程序,该处理程序测试单击的元素是否是 anchor (或您想要允许的任何其他元素),如果是,则设置变量。 (显然,这假设您在较低级别没有其他 anchor 元素单击处理程序来停止事件传播。)
关于javascript - 如何防止通过浏览器按钮导航而不通过链接导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25975594/