离开网站时弹出窗口

4
我遇到了JavaScript的问题。我想要一个脚本,当访问者退出整个网站时会弹出一个带有问题的消息,如果访问者回答“NO”,网页将关闭,如果他回答“YES”,他将被重定向到另一个页面。我在http://www.pgrs.net/2008/01/30/popup-when-leaving-website/上找到了一个示例,但似乎对我不起作用。我无法找到任何解决方案。请检查我的代码并告诉我是否做错了什么?以下是我的源代码。
也许有人能发现问题。
 <!DOCTYPE html>
<html lang="lt">
<head>
    <meta charset="utf-8">
    <title>PUA.LT</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="description" content="">
    <meta name="author" content="Perfect WEB Solutions">
    <link rel="stylesheet" href="<?php echo base_url("additional/style.css") ?>">
    <script src='<?php echo base_url("additional/prototype.js")?>' type='text/javascript' ></script>
</head>
<body>
<script type="text/javascript">


Event.observe(document.body, 'click', function(event) {
  if (Event.element(event).tagName == 'A') {
    staying_in_site = true;
  }
});

window.onunload = popup;

function popup() {
  if(staying_in_site) {
    return;
  }
  alert('I see you are leaving the site');
}
</script>

</body>
</html>

可能是重复的问题:Javascript - 离开页面时的确认 - TheHippo
最佳方法检测用户何时离开网页。Best way to detect when user leaves a web page - Brad
1个回答

12

试一下这个:

window.onbeforeunload = popup;

function popup() {
  return 'I see you are leaving the site';
}

1
这个答案是正确的。当页面卸载时,您不能有任何警报、标准弹出窗口或确认消息发生。返回消息是一个确认,但这已经是你能做到的最好了。太棒了 :) - matsko
你的脚本会在我点击内部链接(如菜单链接)时触发弹出窗口。我只需要在整个网站退出时才触发。同时,我正在使用Prototype.js框架。 - Daniil T.
你需要将 onbeforeunload 置空。如果在网站内被点击,你需要像这样做:window.onbeforeunload = null; - emphaticsunshine
2
这在我的Chrome浏览器中不起作用,这是浏览器相关的吗? - Gomzy
这个不起作用。 - Kornel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接