beforeunload事件后页面重定向不正确

时间:2019-01-30 12:57:09

标签: javascript jquery onbeforeunload

我有一个链接logout,该链接重定向到login.jsp。现在,假设我的URL是http://localhost/path1/path2/login.jsp。触发beforeunload后,单击leave page页面将重定向到http://localhost/path1/login.jsp。我不了解在事件beforeunload和实际页面重定向之间发生了什么。请参阅下面的代码

main.js

$(function(){
 $(window).bind("beforeunload", function(event) {
    if (hasChanges) {
     return "There are modifications, Are you sure?";
    }
 });

 $("#linkLogout").click(function(){
   //do something to backend
   postThis()
   window.location = "login.jsp";
 })
});

此外,我还测试了没有中间化的情况,这意味着上面代码中的hasChangesfalsewindow.location正确地重定向。

注意

  1. 请假定以上代码为旧代码
  2. 这仅在Firefox浏览器上发生,令人惊讶的是,它可以在Edge和IE上运行

更新

postThis在其定义中对/ path / backend执行form.submit()。如果我的知识是正确的,则执行表单commit()对当前页面执行某些操作。

1 个答案:

答案 0 :(得分:0)

尝试所有方法

window.onbeforeunload = function (e) {
  var e = e || window.event;

  // For IE and Firefox
  if (e) {
    e.returnValue = 'Any string';
  }

  // For Safari
  return 'Any string';
};

参阅this