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

时间:2009-01-15 18:29:11

标签: 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";
}

3 个答案:

答案 0 :(得分:18)

  

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

  1. 不要这样做。

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

  3. 说真的,不要这样做。这令人难以置信的刺激,傲慢和无用。使用离开pester脚本的网站管理员被谴责到第四个互联网地狱圈,他们必须花费剩下的永恒时间,只使用 ed ,一个磨损的牙刷和一个<层>。-tag

答案 1 :(得分:0)

你应该使用onbeforeunload事件窗口。

http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx

https://developer.mozilla.org/en/DOM/window.onbeforeunload

用于jquery用户:

$(window).unload( function () { alert("Bye now!"); } );

答案 2 :(得分:0)

您可能需要考虑建立一个“您即将离开此网站”页面。 我们的想法是,您将页面上不在您网站上的网址包装为指向该网页,让访问者知道他们即将离开,并让他们有机会返回或继续。

它比意外的模式对话更温和,它可以让您更好地格式化消息,最终为您的用户提供完全相同的选择。