检测用户与IFrame JavaScript交互的时间

时间:2014-11-03 22:21:02

标签: javascript jquery html iframe

我发现了很多关于此的帖子,但我仍然没有找到解决方案。

我试图检测用户何时在IFrame上做某事。例如,mousemove或keypress。我的IFrame与显示IFrame的网站不同。

如何检测不同域的IFrame上的鼠标移动或按键?

由于

2 个答案:

答案 0 :(得分:2)

您可以像其他任何元素一样将事件连接到IFrame - 例如,只要用户将鼠标悬停在iframe上,就会触发$('#my_iframe').mouseover(function(){ alert('over!'); });

但那真的没用。如果要捕获帧的内容上发生的事件,则无法执行此操作。例如$('#my_frame').contents().mouseover(function(){ alert('moved!'); });无效。

这是因为Same Origin Policy,并且无法绕过它!

答案 1 :(得分:0)

我已成功使用" ...#ala ..

CAVEAT:这将记录位于页面上的IFRAME容器中的更改。因为,父页面将具有此知识。这不会捕获从单独的iframe或其中的页面发出的事件,而不是由父级控制。

$("iframe").on("mouseover focus",function(){ 
     // do your stuff
});

如果您只想对具有特定来源的iframe执行操作,请执行以下操作:

var usedSrc = /facebook|twitter/;

    $('iframe').on('mouseover focus', 
      function () {
          if(usedSrc.test($(this).attr('src'))){
                 // do your stuff
          }
      }  
    );​