取消重定向/ beforeUnload

时间:2014-06-15 20:45:56

标签: javascript jquery url-redirection cancel-button

每次用户更改网址,点击链接,重定向,转到某个地方等时,我都会使用jQuery BlockUI插件显示一些不错的信息("请稍候......") :

$(window).on('beforeunload', function(){$.blockUI();});

现在,我想使用Cancel按钮增强此消息,这会阻止此类重定向并让用户停留在当前页面上。这引出了一个问题: Javascript中是否有任何方法可以阻止正在进行的URL更改过程?或任何其他方法/解决方案,我可以在此Cancel按钮中绑定#39;点击事件?

我想做一些愚蠢或无用的事情吗?

1 个答案:

答案 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中显示:)