Javascript角度条件页面刷新

时间:2017-01-10 06:29:56

标签: javascript html angularjs

我需要在离开编辑页面之前提示用户,这样他就不会丢失未保存的更改。我编写了以下代码,但它有错误。一旦用户进入编辑页面并按下F5后拒绝刷新操作,则不会触发正常刷新。

$(document.body).on("keydown", this, function (event) {
  if (event.keyCode == 116 && isEditPage()) {
    if (!confirm('you will lose all the pending changes. are you sure you want to leave this page?')) {
      return false;
    }
  }
  return true;
});

2 个答案:

答案 0 :(得分:0)

您可以注册当用户离开具有未保存更改的页面时将触发的事件侦听器。无需点击f5键即可启动页面刷新(使用浏览器导航按钮,重新加载图标等)。

window.onbeforeunload = function (e) {
  var message = "Your confirmation message goes here.",
  e = e || window.event;
  // For IE and Firefox
  if (e) {
    e.returnValue = message;
  }

  // For Safari
  return message;
};

答案 1 :(得分:0)

请检查此discussion并尝试以下方式。

 $scope.$on('$routeChangeStart', function(next, current) { 
         return 'are you sure you want to leave?';
    });

您可以在下一个当前参数中获得下一个和当前路线。