在我的网站中,我有一个表单,允许用户将图像或视频发布到 Facebook。因为我需要将文件直接发布到 Facebook,所以我使用的是发布到 iframe 的表单(为了防止在发送帖子后将用户重定向到 Facebook 帖子网址)。
在发送帖子时(请注意,帖子是发送到 Facebook 域而不是我自己的域),我向用户显示一条等待消息,当帖子完成时,我使用 iframeonload
事件隐藏信息。
这是代码:
内嵌框架:
<iframe name="uploader" width=2px height=2px style="visibility: hidden" onLoad="locationChange(this)"></iframe>
加载 iframe 时隐藏消息的 JavaScript:
function locationChange(ifrm)
{
alert("Iframe Change");
document.getElementById("loadingOff").style.visibility = "hidden";
}
这适用于除 IE9 之外的所有浏览器。第一次进入页面时,我可以在 IE9 上看到“Iframe Change”消息。但是在发送帖子后我看不到它(在 Chrome 和 FireFox 上,我看到两次消息,当我进入页面时和发送帖子后)。
我也试过用这个:
<script type='text/javascript'>
var iframe = document.getElementsByName("uploader");
alert(iframe.toString());
iframe.onload = iframe.onreadystatechange = function(){
if( this.readyState && this.readyState !== "complete" && this.readyState !== "loaded" )
{
alert("Not loaded");
}
alert("Local iframe is now loaded");
}
</script>
还有这个:
if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
alert("Local iframe is now loaded.");
});
} else {
iframe.onload = function(){
alert("Local iframe is now loaded.");
};
}
但是最后两个在任何浏览器上都不起作用。如何将onload
事件附加到 IE9 ?
谢谢。