用户与IFrame进行交互时检测到JavaScript
我发现了很多关于此的帖子,但我仍然没有找到解决方案。用户与IFrame进行交互时检测到JavaScript
我试图检测用户在做IFrame上的东西。例如,鼠标移动或按键。我的IFrame与显示IFrame的网站不同。
如何在IFrame上检测鼠标移动或按键,这是不同的域?
感谢
您可以事件挂钩到像任何其他元素的IFrame - 例如$('#my_iframe').mouseover(function(){ alert('over!'); });
会每当用户将鼠标移动到iframe上时,都会触发。
但是这没有用,真的。如果要捕获帧的内容上发生的事件,则无法执行此操作。例如$('#my_frame').contents().mouseover(function(){ alert('moved!'); });
将无法正常工作。
这是因为Same Origin Policy,而且没有办法!
感谢您的信息。所以你的意思是,如果是不同的域我不能发送JS事件从孩子到父窗口? – kat1330 2014-11-03 22:44:59
那么,如果你可以控制框架所指向的页面,则可以在_that_页面上添加监听器,该监听器将触发。如果你无法控制框架中加载的页面,那么你的运气不好。 – 2014-11-05 14:10:23
我已经使用成功“的” .. ALA ..
警告:这会注意到在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
}
}
);
如果可能的话,什么会阻止恶意网站显示,例如iframe中的yahoo登录页面,并读取密码字段中的所有按键? – 2014-11-03 22:37:40
是的,我明白你在说什么。 – kat1330 2014-11-03 23:15:16
但是可以在另一个可以允许CORS的网站上进行一些配置吗?因为我拥有子域网站。 – kat1330 2014-11-03 23:20:51