如何使用JQuery绑定事件处理程序到iframe的onload事件?

4

我在使用 JQuery 绑定时遇到了一些问题。

<iframe id="wufooFormz7x3k1" height="281" allowtransparency="true" frameborder="0" scrolling="no" style="width:100%;border:none" src="http://foo111.com"></iframe>

<script>
jQuery('#wufooFormz7x3k1').ready(function()
{
  jQuery('#wufooFormz7x3k1').bind('onload', alert('hi1'));
  jQuery('#wufooFormz7x3k1').bind('onload', function() { alert('hi2') });
});
</script>

第一个绑定生成警报,但是会抛出此错误,并且不会触发iframe的任何后续加载(这就是我试图检测的内容)。
Uncaught TypeError: Cannot read property 'handler' of undefined and won't be triggered for subsequent onloads.

第二个绑定根本没有触发。
理想情况下,我希望能够绑定iframe的onload事件,这样每次iframe重新加载时都可以生成警报。
1个回答

10

使用load事件。

jQuery('#wufooFormz7x3k1').bind('load', function() { alert('hi2') });

第一次尝试弹出警报,因为你执行了alert并将alert的返回值作为函数传递,但是该返回值不是一个函数,因此会导致错误。

此外,以下内容不需要,也不能实现你想象中的效果。

jQuery('#wufooFormz7x3k1').ready(function()

这忽略了'#wufooFormz7x3k1'并使用document代替。由于脚本位于iframe标签直接后面,因此可以省略它,因为iframe将会准备就绪。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接