如何使用JQuery捕获iframe的点击次数。我有一个亚马逊横幅,我需要在用户点击iframe时关闭其容器DIV。我试过'内容',点击iframe,绑定事件但没有任何作用。当我点击iframe时,它会在另一个标签上打开亚马逊的页面,但点击事件永远不会触发。我提出了一个断点和警报,以确保。
我正在使用最新的JQuery 1.9版并在Chrome上进行测试。我还想过捕获全局点击($(文档).click)并检查点击区域,但是当我点击iframe时,$(文档).click不会触发。有什么建议吗?
同样,它是一个亚马逊横幅iframe,它托管在亚马逊而不是我的服务器上。
不起作用的常规绑定示例:http://jsbin.com/oyanis/4/edit
答案 0 :(得分:4)
有一个巧妙的技巧来点击iframe内容。
你可以这样做:
<div id="iframeinside">
<iframe />
</div>
现在可以在js中说:
var oldActive = document.activeElement; /* getting active Element */
var frame = $('#iframeinside iframe')[0];
$('#iframeinside').mouseenter(function() {
/* Setting interval to 1ms for getting eventually x,y mouse coords*/
oldActive = document.activeElement;
setInterval('doSomething()', 1);
});
$('#iframeinside').mouseleave(function () {
/* clear interval cause we arent over the element anymore*/
clearInterval(intervalId);
});
这些时间间隔会调用:
function doSomething() {
/* if the focus has changed to the iframe */
if(oldActive != frame && document.activeElement == frame) {
oldActive = document.activeElement;
alert(myQuery);
alert('click did happen to the iframe');
}
}
我把它用于了几件事,它总是奏效。我没有检查的是ie6,7和兄弟。