我正在寻找一种方法,如果用户只在查看一个页面后离开我的网站,就会向用户显示一条消息。
我发现了这个(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大师:)
我的目的是仅在非常具体的着陆页上添加代码,并在人们离开页面时显示消息,而不下载我的试用软件或阅读我网站上的其他页面。
答案 0 :(得分:6)
我首先要说的是,我不会以任何方式建议你这样做。这是一个不好的做法,它只会让用户烦恼,让你看起来非常绝望。我再说一遍,不要这样做,这不是一个好主意,这很愚蠢,这不是一个好主意。
但您可以这样做的方法是仅在用户点击远离网站的链接时显示消息。
您可以通过查看链接的href
属性并检查它是否是外部站点来执行此操作。如果是,则显示消息
答案 1 :(得分:2)
我们或许可以原谅你window.onbeforeunload
。但就是这样!
答案 2 :(得分:1)
在某些情况下,这可能非常有用,并且没有此功能会令人讨厌。我为客户开发的应用程序之一要求用户在页面上输入大量数据(接近25个字段)。我知道如果表单分成更多页面会更好,更有用,但这不是重点。有些情况下,员工(大多数不是非常精明的计算机用户)输入数据,但出于任何原因离开页面而没有提交(意外,我确定),导致沮丧。在这种情况下,我很高兴window.onbeforeunload
。