Cancel redirect / beforeUnload
Cancel redirect / beforeUnload
我使用jQuery BlockUI插件来显示一些不错的("请等待…")消息,每次用户更改URL,点击链接,被重定向,去某个地方等:
$(window).on('beforeunload', function(){$.blockUI();});
现在,我想用一个Cancel
按钮来增强这个消息,这将防止这种重定向,让用户留在当前页面。这让我想到了一个问题:在Javascript中是否有任何方法可以阻止正在进行的URL更改过程?或任何其他方法/解决方案,我可以绑定在这个Cancel
按钮的点击事件?
我是不是在做一些愚蠢或无用的事情?
您可以在卸载前尝试e.preventDefault()
或return false
,但出于安全原因,您想要做的事情在技术上不受浏览器支持。想象一个无法关闭的窗口的含义…
最好的方法是使用内置语法。返回字符串到beforeunload
会弹出一个对话框,询问您是否确定要退出,该字符串作为问题和选项"离开页面"或"留在页面上"。
$(window).on('beforeunload', function(){
return "Do you really want to leave this page?";
});
进一步阅读后发现,大多数浏览器都支持返回字符串语法,但Firefox不支持。Firefox会简单地将你的字符串替换为"Are you sure you want to exit this page?"或者类似的内容。
TLDR:您可以在所有浏览器中使用上述返回字符串语法,但您的自定义句子不会在Firefox中显示:)
相关文章:
- 使用Re-base时,在React中从状态绑定和取消绑定Firebase
- 有没有一种优雅的方式来告诉esint,以确保我们're没有使用任何ES6语法/函数
- 如何在javascript中更改beforeunload事件
- JavaScript FileReader中readAsDataURL()与readAsArrayBuffer()和re
- 在窗口上运行Meteor;您're不在Meteor项目目录中”;升级到Meteor.js 1.3之后
- Chrome阻止用户关闭BeforeUnload对话框
- 匹配单词中两个相等的字符,并替换为一个RE
- 搜索JS文件您're表示字符串
- 在window.beforeunload中,你如何捕获他们试图导航到的URL
- 在“beforeunload”上使用jQuery调用rails控制器方法
- jQuery beforeunload 事件未在后退按钮上触发
- 如何阻止 标记的 window.on('beforeUnload') 事件
- 使用 ReactFire 或 Re-base 显示来自 Firebase 的用户特定数据
- 链接到锚点(ajax url)没有't调用BeforeUnload
- RE-在PHP页面中打印包含其数据的特定表单
- 忽略beforeunload中某个表单的提交
- 元素没有显示在包装中,它们're在下面
- 有人能解释一下下面的javascript RE代码吗
- 'babelHelpers.taggedTemplateLiteral'在使用标记的模板字符串时,在re
- 从beforeunload事件中排除提交按钮