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

Jer*_*myB 4 javascript iframe jquery

我在使用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>
Run Code Online (Sandbox Code Playgroud)

第一个绑定生成一个警报但随后抛出此错误,并且不会触发任何后续iframe加载的警报(这是我正在尝试检测的).

Uncaught TypeError: Cannot read property 'handler' of undefined and won't be triggered for subsequent onloads.
Run Code Online (Sandbox Code Playgroud)

第二个绑定根本不会触发.

理想情况下,我想要的是绑定iframe的onload,这样我就可以在每次重新加载iframe时生成警报.

use*_*654 10

使用load事件.

jQuery('#wufooFormz7x3k1').bind('load', function() { alert('hi2') });
Run Code Online (Sandbox Code Playgroud)

第一次尝试发出警报,因为您正在执行警报并将警报的返回值作为函数传递,但该返回值不是函数,因此会发生错误.

此外,以下是不需要的,并没有真正做你认为它做的.

jQuery('#wufooFormz7x3k1').ready(function()
Run Code Online (Sandbox Code Playgroud)

这忽略了'#wufooFormz7x3k1'并使用了document.由于脚本直接位于iframe标记之后,因此您可以省略它,因为iframe已准备就绪.

  • @JeremyB接受那件事!单击复选标记并将其设置为绿色. (2认同)