我的应用程序是MVC5,我想在用户关闭浏览器选项卡时提醒用户。
我发现此解决方案Setting onbeforeunload on body element in Chrome and IE using jQuery效果很好,除了在少数情况下使用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;并在可能导致位置更改的位置放置put语句即可;

关于javascript - 使用location.href进行onbeforeunload导航,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36687168/

10-12 05:07