-3

我正在寻找一种方法来向用户显示消息,如果他在只查看一个页面后离开我的网站。

我发现了这个(http://www.pgrs.net/2008/1/30/popup-when-leaving-website)聪明的解决方案,但它有一些缺陷:

staying_in_site = false;

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');
}

刷新页面或使用后退按钮时也会显示消息。

您知道更好的解决方案或如何在上面的代码中修复它吗?我不是 javascript 大师 :)

我的意图是仅在非常特定的登录页面上添加代码,并在人们离开页面时显示消息,而无需下载我的试用软件或阅读我网站上的其他页面。

4

3 回答 3

6

我首先要说的是,我不会以任何方式建议您这样做。这是一种不好的做法,它只会惹恼用户,而且会让你看起来非常绝望。我再说一遍,不要这样做,这不是一个好主意,这很愚蠢,也不是一个好主意。

但是您可以做到这一点的方法是仅在用户单击离开该站点的链接时才显示该消息。您可以通过查看href链接的属性并检查它是否是外部站点来做到这一点。如果是,则显示消息

但我再说一遍,不要这样做!

于 2010-05-02T15:32:43.310 回答
2

我们也许可以原谅你window.onbeforeunload。但就是这样!

于 2010-05-02T15:45:23.183 回答
1

在某些情况下,这可能非常有用,并且没有此功能会很烦人。我为客户开发的一个应用程序要求用户在一个页面上输入大量数据(接近 25 个字段)。我知道如果将表单分成更多页面,它会更好,更有用,但这不是重点。在某些情况下,员工(大多数不是非常精通的计算机用户)输入了数据,但出于某种原因没有提交就离开了页面(我敢肯定,这是偶然的),这导致了挫败感。在那种情况下我很乐意这样做window.onbeforeunload

于 2011-06-10T21:40:50.827 回答