ng-idle在IE9和IE10中不起作用

时间:2015-06-09 06:30:52

标签: javascript angularjs ng-idle

ng-idle在IE9和IE10中无效。假设您将鼠标指针放在页面上,则不会考虑用户处于非活动状态。当你保持鼠标指针位于页面之外时,它正在工作。

请为此提供解决方案。

使用以下网址进行检查 http://hackedbychinese.github.io/ng-idle/

2 个答案:

答案 0 :(得分:1)

似乎问题出在mousemove事件上,快速修复它可以删除IE浏览器的mousemove事件。使用useragent编写条件语句,并使用interrupt() ng-idle方法配置事件。

if (navigator.userAgent.toLowerCase().indexOf("msie") > 0) {
            // Code for Internet Explorer because ng-idle doesn't stop listening mousemove event.
            IdleProvider.interrupt('keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll'); 
        }
        else {
            IdleProvider.interrupt('mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll'); 
        } 

答案 1 :(得分:1)

替换 $ document.find(' body')。on(options.interrupt,function(event){

svc.interrupt();

} 使用angular-idle.js中的以下代码

$ document.find(' body')。on(options.interrupt,function(event){

if (event.type !== 'mousemove' || (event.movementX || event.movementY)) {
    svc.interrupt();
}

});