我的代码效果很好,但是当reloadind 同一页(重新加载按钮ou F5键)或点击“返回”时,我不需要这个“beforeunload warning” / strong>按钮......
我原来的工作代码:
<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(“后退按钮”和“重新加载页面”?)
答案 0 :(得分:0)
首先,让我这样说,&#34;&#34;我不想&#34;&#34;停止重新加载页面!但是控制前载消息!
所以如果你允许我,我会试着解释一下:
每个人都对我说,&#34;这是不可能的&#34;控制UnbeforeUnload事件,我做了一些测试,根据浏览器它是完美的,但这是一个&#34;工作进度再现&#34;
所以我知道:
为了控制键盘,我在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;
}
}
关注,here (dotnsf site)是我获取用于控制浏览器&#34;后退按钮和&#34; ...我甚至可以禁用的代码。
但它是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更多的帮助和解决方案!
非常感谢!