$ window.onblur随机停止工作

时间:2014-02-18 16:23:28

标签: 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;
  };

});

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

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

更新2:我仍然不知道它是如何卡住的,但我知道如何解决它:

  1. 我点击窗口中的输入来聚焦它。
  2. 我点击输入外部以取消聚焦。
  3. 我切换标签并重新登录。它再次有效。

1 个答案:

答案 0 :(得分:0)

尝试使用angular.element的API代替

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

http://plnkr.co/edit/khYHeJlvn2uCzKeTjndM