我知道jQuery无法绑定到文件输入的onchange
事件。它是否也无法绑定到inframe的onload
事件?
使用此HTML,
<iframe src="http://jsfiddle.net" onload="alert('js alert');"></iframe>
和这个javascript,
$("iframe").live("onload",function(){alert('jq alert');});
我收到提醒js alert
,而不是jq alert
,因此jQuery没有绑定到onload
事件。
我无法理解为什么jQuery无法及时绑定到onload
事件(如ThiefMaster said)。 onload
与其他事件有什么不同?
答案 0 :(得分:3)
事件已经在注册事件处理程序时触发。如果您需要处理onload事件并希望避免丑陋的内联事件处理程序,请通过jQuery创建iframe并在设置url或将其附加到文档之前附加事件处理程序。
答案 1 :(得分:0)
在您的代码中,您无法捕获onload
事件,因为该事件已经被触发并在那时飞走了。
这是一个捕捉事件的解决方案:
<iframe src=""></iframe>
$(document).ready(function() {
$("iframe").load(function() { alert('load complete'); });
$("iframe").error(function() { alert('error occurs'); });
$("iframe").attr("src", "http://google.com");
});
当您提供src
时,会触发加载/错误事件。因此,在提供src
之前,绑定要处理的事件。
您也可以将此技巧用于<img>
!