我发现了很多关于此的帖子,但我仍然没有找到解决方案。
我试图检测用户何时在IFrame上做某事。例如,mousemove或keypress。我的IFrame与显示IFrame的网站不同。
如何检测不同域的IFrame上的鼠标移动或按键?
由于
答案 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
}
}
);