Javascript在关闭浏览器窗口时获取重定向警报

2 javascript javascript-events

我正在尝试让这个Javascript正常工作.我的意图是,当用户试图关闭网站页面以获得"停留在当前页面或关闭"的警报时如果他们点击"确定"我希望它关闭,如果他们点击"取消"我希望它重定向到另一页.问题是,当他们试图转到同一网站上的另一个页面时,它会给他们弹出窗口.我希望它仅在关闭时显示,而不是在将页面离开到另一页时显示.我不确定这是否可能,我非常感谢您的帮助和评论.

    window.onbeforeunload = fget;
function yPop(url) {
  var found = 1;
  window.onbeforeunload = '';
  window.location = url;
  return false;
}
function fget() {
  alert("Thank you for visiting our website, you are welcome any time! \n\n");
  window.location = "http://NewLink.com";
  return "\n________________________\n\n PRESS 'CANCEL' To Stay On The Current Page \n\n________________________\n";
}
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 18

问题是,当他们试图转到同一网站上的另一个页面时,它会给他们弹出窗口.我希望它只在关闭时显示

  1. 不要这样做.

  2. 您无法仅检测关闭,但您可以通过单击内部链接和其他类型的离开来区分离开,包括外部链接,后退按钮,关闭以及选择/键入新URL.在页面加载后的脚本中,设置onbeforeunload事件,然后扫描所有document.links并针对当前location.host测试他们的.host.如果匹配,则为内部链接.在这种情况下,向它们添加一个onclick事件,在返回true之前删除onbeforeunload事件,允许链接在没有警告的情况下正常运行.

  3. 说真的,不要这样做.这令人难以置信的刺激,傲慢和无用.使用离开pester脚本的网站管理员被判处第四个互联网地狱圈,他们必须花费剩余的永恒时间,使用ed,磨损的牙刷和<layer> -tag 在Netscape 4上制作样式表.