Javascript $window.onblur随机停止工作

Javascript $window.onblur随机停止工作,javascript,angularjs,blur,onblur,Javascript,Angularjs,Blur,Onblur,我现在在safari上运行得很好,并不总是在chrome上运行: app.controller(.... function($window){ $window.focus(); $window.onfocus = function(){ $scope.inFocus = true; }; $window.onblur = function (){ console.log("onblur"); $scope.inFocus = false; };

我现在在safari上运行得很好,并不总是在chrome上运行:

app.controller(.... function($window){
  $window.focus();

  $window.onfocus = function(){
    $scope.inFocus = true;
  };

  $window.onblur = function (){
    console.log("onblur");
    $scope.inFocus = false;
  };

});
console.log并不总是被触发。我想知道这是一个错误还是我做错了什么

更新:我尝试了@Gabe给出的解决方案。有时它仍在破裂,我想知道是否有另一个动作在干扰它。但它看起来确实是随机的

更新2:我仍然不知道它是如何卡住的,但我知道如何让它松开:

  • 我单击窗口中的输入以将其聚焦
  • 我在输入之外单击以取消焦点
  • 我切换tab并返回。它又起作用了
    尝试改用
    angular.element
    的API

    angular.element($window).bind('blur', function (){
      console.log("onblur");
      $scope.inFocus = false;
    });
    

    可能与@JonathanRowny重复您的链接称其受支持。此外,它在chrome中“有时”也能工作。不知道是什么把它弄坏了控制器在哪里?我想如果这是在一条特定的路线上,事件可能会被清理干净。@JonathanRowny这是主页的主控制器。我会检查路线是否会影响它,但我认为不会。它似乎工作得更好。我会长期考虑的。谢谢:)。您能澄清一下“有时中断”是什么意思吗?当我切换选项卡时,onblur事件不再触发。它是随机发生的(至少我不能以可预测的方式重现它)。哦,是的,我应该补充一点,控制台中没有错误。