【发布时间】:2010-10-24 19:35:23
【问题描述】:
我想在您离开页面时显示一条消息(不是烦人的警报,只是一些 html 告诉您等待),在考虑它时我面临一些困难:
当用户在 浏览器,取消导航 操作,我想发送消息 离开。
无论何时单击任何链接,都会显示该消息。
当点击的链接刚刚打开另一个选项卡时不应捕获(忽略 _blank 目标)
话虽如此,触发事件非常简单,就像
$(document).unload(function()
{
// display message
});
问题是如果用户取消,消息不会消失。
一个可能的解决办法是:
$(window).unload(function()
{
// display message
setTimeout(function()
{
// hide message
},5000);
});
但我想知道是否有更简洁的方法,即当用户取消导航(或由于任何其他原因失败)时,我可以隐藏消息。
编辑#2:
我刚刚注意到,使用上面的代码,在 FF 中,直到页面离开时才会显示消息,此时如果用户按下停止,他将收到 about:blank。如果他在此之前按停止,则永远不会显示该消息。这正是我想要的。
在 Internet Explorer 中,消息永远不会显示,我假设这是因为 IE 处理内容的方式不同。我想知道 chrome 会发生什么?
【问题讨论】:
标签: javascript jquery events navigation location