如何禁用“警告”;onbeforeunload”;当“;重新加载”;同一页
How to disable Warning by "onbeforeunload" when "reload" same page?
我的代码运行良好,但当重新加载同一页面时(重新加载按钮ou F5键),或者当单击"返回"按钮。。。
我的原始工作代码:
<script>
window.onbeforeunload = function (e) {
var msg = ''n'n'nARE YOU SURE?'n'n'n';
e = e || window.event;
if (e)
e.returnValue = msg;
//some extra conditions
document.getElementById("popUpOut").style.display = 'block';
return msg;
}
</script>
所以,这是我的问题:如何在这些情况下禁用beforeunload("后退按钮"answers"重新加载页面")?
你不能那样做。页面刷新类似于导航并卸载DOM,因此onbeforeunload事件将始终被调用,但您可以使用jquery来阻止按Ctrl+R或F5和Backspace键。
对于Ctrl+R,请使用以下选项:
$(document).keydown(function (e) {
if (e.keyCode == 65 && e.ctrlKey) {
e.preventDefault();
}
});
对于F5,请使用以下内容:
$(document).keydown(function (e) {
if (e.which || e.keyCode) == 116) {
e.preventDefault();
}
});
首先,让我说,"我不想"停止重新加载页面!但是控制加载前消息!
所以,如果你允许的话,我会试着解释一下:
- A) 我只想在我显示(或不显示)"警告"的情况下做决定退出消息"
到目前为止,每个人都对我说,"不可能"控制UnbeforeUnload事件,我做了一些测试,根据浏览器的不同,这是完全可能的,但这是一个"正在进行的研究"
所以我知道这个:
- 1) 听键盘很容易"选择事件",我想在每一条的"警告信息"中显示什么
- 2) 听着历史,我可以选择"Navigator’s"上发生的事情后退按钮",并执行相同操作
- 3) 下面的代码在chome中运行良好
为了控制键盘,我在JS中有一个非常简单的代码:
document.onkeydown = KeyCheck;
function KeyCheck(e) {
var key = (window.event) ? event.keyCode : e.keyCode;
if(key==116) {flag_beforeunload=false;}
if(key==8) {flag_beforeunload=false;}
if (e.keyCode == 82 && e.ctrlKey) {flag_beforeunload=false;}
document.getElementById("container").innerHTML = "key = "+key + " - " + flag_beforeunload;
}
window.onbeforeunload = function(e){
var msg = 'You are sure to exit?';
e = e || window.event;
if(e)
if (flag_beforeunload == true) {
return msg;
}
}
接下来,这里(dotnsf网站)是我获得控制浏览器"后退按钮"的代码的地方。。。我甚至可以禁用它。
但它是en-Jquery,下面是我的代码,但在JS中:
window.onpopstate = function(event) {
window.history.back(-1)
if( !event.state ){
//the to lines below, disable the back button
// history.pushState( "nohb", null, "" );
// return;
// the following line iIcan use to control the envent, in UnBeforeUnload
// flag_beforeunload=false;
}
}
}
最后,这是我的问题:我获得了比Chrome更多的帮助和其他导航器的解决方案!
非常感谢!
相关文章:
- 加载器组件仅加载一次
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 重新加载父页
- 如何加载一次模型并将其存储到变量中
- 在呈现HTML样式和脚本时加载启动页
- 防止形成“;提交时”;正在加载空白页
- JS文件未加载第一页加载
- 离子未加载标签页
- 在加载多页模板Jquery Mobile的页面后运行事件
- 每15天为新用户加载一次放大弹出菜单
- 使用参数重新加载父页
- Jquery Ajax每隔1秒加载一次
- 如何在页面加载一段时间后使用adsense
- 每个用户/浏览器会话只加载一次Javascript
- 自定义JQUERY未在分页页面上加载(第一页除外)
- 获取 window.location.reload 以在 Ionic 中仅加载一次
- 只加载一次js函数
- 使用jQuery移动ajax导航加载多页模板
- 从父页重新加载子页
- 保罗爱尔兰无限滚动一次加载 2 页