问题在Iframe中跟踪鼠标移动

时间:2017-09-13 12:33:53

标签: javascript

详细信息: -

在我们的项目中,我们需要实现一个功能,如果他/她处于非活动状态5分钟,我们需要注销用户。如果他/她没有移动鼠标5分钟,我们需要将用户视为非活动状态。

我们能够在所有正常页面中实现这一点,但在一个页面中我们有一个iframe并且iframe播放视频和其他swf,mp4文件时遇到困难。同样在iframe中,还有另一个框架作为内容的包装器。

在上面的页面中,我们无法跟踪鼠标移动,因此无法检测用户是否处于活动状态。

经过大量研究后,我们已经实现了代码,如果我们通过浏览器控制台运行,但在我将其保留在页面上时无效。

是否有人从事类似功能或了解与此相关的任何事情?如果有人可以帮助我实现这一功能,那就太好了。

  

注意: - 在iframes中也有点击

1 个答案:

答案 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>内部。