AngularJS观看$ window.documet.visibilityState不会立即改变

时间:2017-07-12 07:24:30

标签: javascript angularjs

我使用的是AngularJs版本1.4,我需要检测用户何时不在我应用的标签页上以及何时回来,所以我尝试以这种方式使用$ watch:

$rootScope.$watch(angular.bind($window, function(document){
    return this.document.visibilityState
}), function (n, o) {
    if (n === 'visible' && o == 'hidden') {
        console.log('Im back')
    }
}) 

当我回到选项卡时,需要花费很多时间直到它在更改时激活响应功能,例如5秒钟。

任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试onfocus和onblur of window:

window.onblur = function() { console.log('blur'); }
window.onfocus = function() { console.log('focus'); }

它适用于简单的java脚本。 在角度你可以试试这个

$window.onblur = function() { console.log('blur'); }
$window.onfocus = function() { console.log('focus'); }