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

ng-idle is not working in IE9 and IE10

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

请提供解决方案。

使用以下url检查 http://hackedbychinese.github.io/ng-idle/

看来问题出在 mousemove 事件上,快速解决方法是删除 IE 浏览器的 mousemove 事件。使用useragent编写条件语句,使用ng-idleinterrupt()方法配置事件

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'); 
        } 

替换

$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();
    }
});