我有这个功能
window.onbeforeunload = function () {
return "Are you sure?";
};
我有一个按钮,当用户按下它时,窗口刷新以更新屏幕值并进行一些数据库调用。我在函数的开头添加了window.onbeforeunload=null;
来禁用onbeforeunload,但它仍然被调用。
有没有办法在我的按钮onclick函数中禁用onbeforeunload函数或者只在关闭窗口上调用window.onbeforeunload而不是刷新?
答案 0 :(得分:5)
以下代码应该有效(应保留在脚本标记之间的head标记内)
window.onload=function(){
window.onbeforeunload = function(){
return "Are you sure?";
}
document.getElementById('refresh').onclick=function(){
window.onbeforeunload = null;
window.location.reload(); // replace with your code
}
}
答案 1 :(得分:1)
另一种方法是使用Cookie。将cookie设置为标志,就像您想要刷新页面而不需要onbeforeunload函数调用一样。
window.onbeforeunload = function (e) {
...
canceled = getCookie("canceled");
if (canceled == "false" || canceled == undefined)
{//do ur stuff here
}
...
}
并将您的Cookie设置为5秒,以便在您重新加载页面后立即过期。