2017-09-13 83 views
0

详细信息: - 在我们的项目中,我们需要实现一项功能,在需要注销用户的情况下,如果他/她在5分钟内不活动。如果他/她没有将鼠标移动5分钟,我们需要将用户视为不活动。问题在iframe中跟踪鼠标移动

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

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

经过大量的研究,我们已经实现了可以正常工作的代码,如果我们通过浏览器控制台运行,但是当我将其保存在页面上时不起作用。

有人在类似功能上工作或知道任何与此相关的任何事情吗?如果有人能够帮助我实现这个功能,那将会很棒。

注: - 还有一些点击I帧

回答

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的文档内做出父文档的所有事件走得更远。这使您只需使用一个监听器即可处理所有事件,无论它们是否来自。