onbeforeunload导航使用location.href

onbeforeunload navigation using location.href

本文关键字:location href 导航 onbeforeunload      更新时间:2023-09-26

我的应用程序是MVC5,我想在用户关闭浏览器选项卡时提醒他们。我发现这个解决方案使用jQuery在Chrome和IE中的body元素上设置onbeforenload,效果很好,除了我在少数情况下使用location.href(Telerik网格中的自定义命令按钮)。尝试了以下操作:

 $(window).bind('hashchange', function() {
              validNavigation = true;
    }); 

为了避免询问用户是否要离开页面。在关闭浏览器选项卡之前,有没有更好的方法提醒用户?

试试这个;)

需要对此代码进行一些修改:

window.onbeforeunload = function() {
  if(validNavigation){
    validNavigation = false;
    /* if this click is valid means user action is not close window or reload page then just return; */
    return;
  }
  /* Want to ask user before leaving the page */
  return "Are you sure you want to leave this page bla bla bla?"; // you can make this dynamic, ofcourse...
};

validNavigation = true;
$(document).on('click', '.validNavigation', function(){
  validNavigation = true;
});

现在,您需要做的是将validNavigation类添加到所有不想向用户显示onbeforeunload消息的链接中;

更新根据评论:

function gotopage(args){
  /* set validNavigation to true to don't show warning on page load; */
  validNavigation = true;
  window.location.href = [args];
}

对于您不想向用户显示警告的操作,只需设置validNavigation = true;并在其后面放置语句可能会导致位置更改;