捕获当前页面上的任何点击事件并阻止导航

javascript: catch any click event on current page and prevent navigation?

本文关键字:事件 导航 任何点 当前页      更新时间:2023-09-26
function stopNav() {
var han;
evt = window.event
  if (evt) {
  var elem = evt.target ? han = evt.target : evt.srcElement && (han = evt.srcElement)
       if (evt.type=="click") {  
          evt.preventDefault();alert('stopped navigation');
      }
  }
}

我想防止用户从页面导航的可能性。有时,如果他们点击一个链接或一个按钮,甚至一个元素,它将导航到另一个页面。我想阻止这一切发生。如果是页面上发生的ajax事件,那也没关系。

回复你的评论

@Rohit416是的,它应该只在导航开始时停止。我想知道我是否可以在不定义onbeforeunload处理程序的情况下做到这一点

我必须指出你不能。没有其他可靠的方法来检测页面何时被卸载,也没有任何方法来阻止用户离开您的页面。想想他们离开的其他方式,比如在地址栏里输入一个新地址,或者点击一个书签等等。

onbeforeunload只是给用户一个建议的一种方式,他们现在不应该离开,但决定权仍然在他们手中。

如果你阻止用户点击你页面上的链接,那么把链接放在首位有什么意义呢?