我想在你离开页面时显示一条消息(不是烦人的警报,只是一些告诉你等待的html),在考虑它时我面临着某些困难:
话虽这么说,触发事件非常简单,只需类似
$(document).unload(function()
{
// display message
});
问题是,如果用户取消,该消息不会消失。
一个可能的解决办法是:
$(window).unload(function()
{
// display message
setTimeout(function()
{
// hide message
},5000);
});
但我想知道是否有一种更干净的方法,即当用户取消导航(或由于任何其他原因失败)时,我可以隐藏该消息。
编辑#2:
我只是注意到,使用上面的代码,在 FF 中,直到离开页面才会显示消息,此时如果用户按“停止”,他将收到 about:blank。如果他在此之前按“停止”,则永远不会显示该消息。这正是我想要的。
在 Internet Explorer 中,该消息永远不会显示,我假设这是因为 IE 处理内容的方式不同。我想知道 chrome 中会发生什么?
对于第一点:
当用户在浏览器中按“停止”取消导航离开操作时,我希望该消息消失。
I had 同样的问题 https://stackoverflow.com/questions/1776447/detect-when-user-clicks-link-but-aborts不久前,响亮的反应——也得到了我随后的研究的支持——是这是不可能的。一旦开始请求新页面,就不可能以编程方式可靠地“返回”。暂停确实可能是唯一的出路。
不过,另外两点应该相对简单:遍历每个链接(例如使用 jQuery),然后添加click
打开确认窗口并返回的事件false
这样原始的 href 就不会打开。仅针对内部链接执行此操作应该相对容易(检查target
财产,如果是_blank
,保留链接。)
处理已经存在的链接可能会变得困难click
不过,事件以及导致不同页面的其他事件(例如表单提交)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)