使用Jquery跟踪iframe内的点击次数
我正试图找出一种用jquery跟踪iframe内部点击的方法。 iframe位于同一个域,但我似乎无法使其工作,这是我的代码:
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); }); }); Clicks: 0
什么可能是错的?
我在SO看到了与此问题非常类似的其他问题,但没有一个问题解决了我的问题。
更新:
我已经使用@Wes代码在http://www.politicos.biz/stack/iframe_click.php更新了我的代码,它适用于jsfiddle,但不适用于我的网站。
在添加事件时,请确保iframe已完全加载。
我希望处理程序可以添加.document
$('body', window.parent.frames[0].document).click( function(){} );
要么
$('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"); });
在父框架上,创建一个从iframe内部调用的函数。
父:
var click = 0; function addClick() { click++; }
然后,从iframe调用它
parent.addClick();
最后,简单参考click
查看点击次数。 希望这可以帮助。