每次用户更改网址,点击链接,重定向,转到某个地方等时,我都会使用jQuery BlockUI插件显示一些不错的信息("请稍候......") :
$(window).on('beforeunload', function(){$.blockUI();});
现在,我想使用Cancel
按钮增强此消息,这会阻止此类重定向并让用户停留在当前页面上。这引出了一个问题: Javascript中是否有任何方法可以阻止正在进行的URL更改过程?或任何其他方法/解决方案,我可以在此Cancel
按钮中绑定#39;点击事件?
我想做一些愚蠢或无用的事情吗?
答案 0 :(得分:2)
您可以在beforeunload位中尝试e.preventDefault()
或return false
但出于安全原因,浏览器在技术上并不支持您想要做的事情。想象一个不可关闭的窗口的含义......
最好的办法是使用内置语法。将字符串返回到beforeunload
会弹出一个对话框,询问您是否确定要退出,并将该字符串作为问题和选项"离开页面"或者"留在页面"。
实施例
$(window).on('beforeunload', function(){
return "Do you really want to leave this page?";
});
<强>更新强>
在进一步阅读之后,事实证明主流浏览器支持返回字符串语法,但Firefox不支持。 Firefox会简单地用字符串替换你的字符串&#34;你确定要退出这个页面吗?&#34;或类似的东西。
TLDR:您可以在所有浏览器中使用上述返回字符串语法,但您的自定义句子不会在Firefox中显示:)