跟踪jquery里面的iframe的点击

跟踪jquery里面的iframe的点击

问题描述:

我想了解一种跟踪jQuery内部iframe内点击的方法。 的iframe是定位在相同的域名,但我仍似乎不能够完成这项工作,这是我的代码:跟踪jquery里面的iframe的点击

<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
<script type="text/javascript"> 
    var clicks = 0; 
    $('#myframe').load(function() { 
     alert('loaded'); 
     var that = $(this); 
     that.contents().find('a').bind('click', function(e) { 
      e.preventDefault(); 
      clicks++; 
      $('#clicks').html(clicks); 
     }); 
    }); 
</script> 
</head> 
<body> 
Clicks: <span id="clicks" >0</span> 
<iframe id="myframe" src="test_iframe.php" width="500" height="500"></iframe> 
</body> 
</html> 

的任何想法可能是错误的?

我在SO看过其他与此非常相似的问题,但没有一个答案能解决我的问题。

UPDATE:

我已经更新了我的http://www.politicos.biz/stack/iframe_click.php与@Wes代码代码,它的工作原理上的jsfiddle但不是我的网站上。

+2

1.请不要使用链接缩短网站,2.不要更新您的问题或添加评论,如:**仍然寻找答案:(**,我们已经知道这是因为没有答案:) – Kev

确保iframe已完全加载,但要添加事件。

我希望与.document

$('body', window.parent.frames[0].document).click( 
    function(){} 
); 

OR

$('body', $('templateframe')[0].document).click( 
    function(){} 
); 

这里添加的处理程序是一个例子:

http://jsfiddle.net/wesbos/VxA8t/1/

$(function() { 
    var clicks = 0; 
    $('#myframe').contents().find('a').bind('click', function(e) { 
     e.preventDefault(); 
     clicks++; 
     $('#clicks').html(clicks); 
    }); 
}); 

您需要先找到链接,然后绑定到它。

你的代码应该是这样的:父框架上

$('body', $('templateframe')).contents().find('a').click(function(event) { 
    alert("Link Clicked"); 
}); 
+0

你在jsfiddle的例子似乎很好,但我的代码在http://x.co/ZFR4没有,请你看一下吗?谢谢! –

+0

您将框架ID更改为名称。只需添加id =“myFrame”即可使用。 – wesbos

+0

我已将'name'改为'id',但仍然没有运气,请您仔细检查?谢谢。 –

,创建一个能够从iframe内调用的函数。

父:

var click = 0; 
function addClick() 
{ 
    click++; 
} 

然后从IFRAME

parent.addClick(); 

称之为最后,简单是指click的点击次数的数量。希望这可以帮助。