【发布时间】:2013-05-22 15:32:34
【问题描述】:
重写问题 -
我正在尝试创建一个页面,如果用户离开页面(到其他链接/网站或关闭窗口/选项卡)我想显示 onbeforeunload 处理程序说 we have a great offer for you? 并且如果用户选择 @987654325 @ 它应该进行正常的传播,但如果他选择stay on the page,我需要他将其重定向到提供页面redirection is important, no compromise。为了测试,让我们重定向到google.com
我做了一个程序如下-
var stayonthis = true;
var a;
function load() {
window.onbeforeunload = function(e) {
if(stayonthis){
a = setTimeout('window.location.href="http://google.com";',100);
stayonthis = false;
return "Do you really want to leave now?";
}
else {
clearTimeout(a);
}
};
window.onunload = function(e) {
clearTimeout(a);
};
}
window.onload = load;
但问题是,如果他点击指向yahoo.com 的链接并选择leave the page,他不会去雅虎而是去谷歌:(
帮帮我!!提前致谢
here how you can test because onbeforeunload does not work on iframe well
【问题讨论】:
-
用户讨厌这个。如果他们不想离开,他们不会更改 URL 或关闭选项卡。你为什么要惹恼他们?
-
我知道,但它是为了学习目的而不是作为 ux 的真实项目
-
@GeorgeCummins 在某些应用程序中欢迎“确认导航”对话框。例如,在 Google Docs 中,如果用户在自动保存完成之前尝试导航。一方面,我宁愿被“确认导航”对话所困扰,也不愿失去我的工作。
-
@RohitAgrawal 我真的对这个特殊问题感到困惑。如果用户选择留下......为什么要把他们送到其他地方? (你不是在为 Google 工作,是吗??)
-
它可以是来自我网站的任何链接或任何促销页面,消息可以是你想看到一个报价,停留在页面上可以将他带到那个报价页面,离开应该可以正常工作
标签: javascript jquery