用户离开站点时显示消息

时间:2010-05-02 14:55:04

标签: javascript popupwindow

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

我发现了这个(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大师:)

我的目的是仅在非常具体的着陆页上添加代码,并在人们离开页面时显示消息,而不下载我的试用软件或阅读我网站上的其他页面。

3 个答案:

答案 0 :(得分:6)

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

但您可以这样做的方法是仅在用户点击远离网站的链接时显示消息。 您可以通过查看链接的href属性并检查它是否是外部站点来执行此操作。如果是,则显示消息

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

在某些情况下,这可能非常有用,并且没有此功能会令人讨厌。我为客户开发的应用程序之一要求用户在页面上输入大量数据(接近25个字段)。我知道如果表单分成更多页面会更好,更有用,但这不是重点。有些情况下,员工(大多数不是非常精明的计算机用户)输入数据,但出于任何原因离开页面而没有提交(意外,我确定),导致沮丧。在这种情况下,我很高兴window.onbeforeunload