javascript - 如何使用 JQuery 将事件处理程序绑定(bind)到 iframe 的加载?

标签 javascript jquery iframe

我在使用 JQuery 进行绑定(bind)时遇到了一些问题。

<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>

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

Uncaught TypeError: Cannot read property 'handler' of undefined and won't be triggered for subsequent onloads.

第二个绑定(bind)根本不会触发。

理想情况下,我想要的是绑定(bind) iframe 的加载,这样我就可以在每次重新加载 iframe 时生成一个警报。

最佳答案

使用加载事件。

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

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

此外,以下内容不是必需的,也不会真正按照您的想法去做。

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

忽略 '#wufooFormz7x3k1' 并使用 document 代替。由于脚本直接位于 iframe 标记之后,您可以省略它,因为 iframe 将准备就绪。

关于javascript - 如何使用 JQuery 将事件处理程序绑定(bind)到 iframe 的加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162650/

相关文章:

javascript - Jquery的返回值由两个变化函数来计算

javascript - 如何进入数组中的对象

javascript - 如何通过索引从 <select> 中获取 <option>?

javascript - 如何等待 HTML 页面并在页面完全创建后获得结果?

javascript - iFrame 中的 SelectionContext - 访问属性 ‘getSelection’ 的权限被拒绝

javascript - 访问 html 表单元素,在 iframe 内没有 id/name

javascript - 如何使图像高度适合模态 div

javascript - function () {} 分配给变量时是什么意思

javascript - 返回 false 不起作用

javascript - 将 jQuery 选择保存到变量的行为不同