2

我有这个功能

 window.onbeforeunload = function () {        
          return "Are you sure?";        
    };

我有一个按钮,当用户按下它时,窗口会刷新以更新屏幕值并进行一些数据库调用。我window.onbeforeunload=null;在函数的开头添加了禁用 onbeforeunload 但它一直被调用。

有没有办法在我的按钮 onclick 函数中禁用 onbeforeunload 函数或使 window.onbeforeunload 仅在关闭窗口而不是刷新时调用?

4

2 回答 2

5

以下代码应该可以工作(应该保留在脚本标签之间的头标签内)

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
    }
}​

工作演示。

于 2012-06-18T17:55:51.340 回答
1

另一种方法是使用 Cookie。将 cookie 设置为标志,就像您想在不调用 onbeforeunload 函数的情况下刷新页面一样。

 window.onbeforeunload = function (e) { 
...      
   canceled = getCookie("canceled");
         if (canceled == "false" || canceled == undefined)
          {//do ur stuff here
          }
...
}

并将您的 cookie 设置为 5 秒,以便在您重新加载页面后立即过期。

于 2012-06-18T19:51:41.617 回答