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