详细信息: -
在我们的项目中,我们需要实现一个功能,如果他/她处于非活动状态5分钟,我们需要注销用户。如果他/她没有移动鼠标5分钟,我们需要将用户视为非活动状态。
我们能够在所有正常页面中实现这一点,但在一个页面中我们有一个iframe并且iframe播放视频和其他swf,mp4文件时遇到困难。同样在iframe中,还有另一个框架作为内容的包装器。
在上面的页面中,我们无法跟踪鼠标移动,因此无法检测用户是否处于活动状态。
经过大量研究后,我们已经实现了代码,如果我们通过浏览器控制台运行,但在我将其保留在页面上时无效。
是否有人从事类似功能或了解与此相关的任何事情?如果有人可以帮助我实现这一功能,那就太好了。
注意: - 在iframes中也有点击
答案 0 :(得分:0)
iframe的来源在技术上讲是自己的文档(documentception?)。诀窍是收听本文档中的鼠标事件。虽然如果相同的原始政策允许这样做,我也不会尝试。
使用普通JS:
var iframeDocument = document.querySelector('iframe').contentDocument;
iframeDocument.addEventListener('mousemove', function (event) {
console.log(event.pageX, event.pageY);
});
使用jQuery:
$('iframe').contents().mousemove(function(e) {
console.log(e.pageX, e.pageY);
});
您可以通过将iframe文档中的所有事件分派到父文档来进一步发展。这样就可以为所有事件使用一个侦听器,无论它们是否来自<iframe>
内部。