Javascript $window.onblur随机停止工作
我现在在safari上运行得很好,并不总是在chrome上运行: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; };
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:我仍然不知道它是如何卡住的,但我知道如何让它松开:
尝试改用
angular.element
的API
angular.element($window).bind('blur', function (){
console.log("onblur");
$scope.inFocus = false;
});
可能与@JonathanRowny重复您的链接称其受支持。此外,它在chrome中“有时”也能工作。不知道是什么把它弄坏了控制器在哪里?我想如果这是在一条特定的路线上,事件可能会被清理干净。@JonathanRowny这是主页的主控制器。我会检查路线是否会影响它,但我认为不会。它似乎工作得更好。我会长期考虑的。谢谢:)。您能澄清一下“有时中断”是什么意思吗?当我切换选项卡时,onblur事件不再触发。它是随机发生的(至少我不能以可预测的方式重现它)。哦,是的,我应该补充一点,控制台中没有错误。