如何在离开页面时控制浏览器确认对话框?

Noa*_*tin 12 javascript jquery

我知道有很多关于这方面的问题,但没有什么能正确回答我.我想在用户离开页面时显示确认对话框.如果用户按下取消,他将保持在页面上,如果确定,他所做的更改将通过调用方法回滚.我这样做了:

window.onbeforeunload = function () {
  var r = confirm( "Do you want to leave?" );
  if (r == true) {
       //I will call my method
  }
  else {
      return false;
  }
};
Run Code Online (Sandbox Code Playgroud)

问题是我正在获取浏览器默认弹出窗口:"LeavePage/StayOnPage"

此页面要求您确认是否要离开 - 您输入的数据可能无法保存.

此消息显示在Firefox中,在Chrome中有点不同.我在第一个确认对话框上按OK后弹出这个弹出窗口.

有没有办法不显示这个对话框?(第二个,我没有创建).或者,如果有任何方法可以控制此弹出窗口,有没有人知道如何做到这一点?谢谢

Tho*_*sen 10

这就是我所做的,修改以满足您的需求:

// This default onbeforeunload event
window.onbeforeunload = function(){
    return "Do you want to leave?"
}

// A jQuery event (I think), which is triggered after "onbeforeunload"
$(window).unload(function(){
    //I will call my method
});
Run Code Online (Sandbox Code Playgroud)

注意:它经过测试可在Google Chrome,IE8和IE10中使用.