首页 > 解决方案 > 当浏览器空闲且页面中有动态 iframe 时,JavaScript 检测浏览器不活动期

问题描述

这段代码可以很好地捕获浏览器的不活动状态,但我在页面中有 iframe,它动态包含在 javascript 代码中。我什至想考虑动态 iframe 中的鼠标移动和按键事件。什么样的额外代码可以解决这个问题?我不喜欢使用任何 jquery 浏览器空闲插件。

提前致谢!!。

var idleTime = 0;
$(document).ready(function () {
    //Increment the idle time counter every minute.
    var idleInterval = setInterval(timerIncrement, 60000); // 1 minute
    //Zero the idle timer on mouse movement.
    $(this).mousemove(function (e) {
        idleTime = 0;
    });
    $(this).keypress(function (e) {
        idleTime = 0;
    });
});
function timerIncrement() {
    idleTime = idleTime + 1;
    if (idleTime > 19) { // 20 minutes
        window.location.reload();
    }
}

标签: javascriptiframe

解决方案


这有效,但对于已经加载的 iframe,不适用于动态 iframe。如何使其适用于动态加载的 iframe。

$('iframe').contents().keypress(function(){console.log('iframe keypress event fired');});

$('iframe').contents().mousemove(function(){console.log('iframe mouse move event fired');});

推荐阅读