在我的网站上,我有一个表单,允许用户将图片或视频发布到Facebook。因为我需要直接将文件发布到Facebook,所以我使用的是一种表单,即将文件发送到Iframe (以防止用户在帖子发送后重定向到Facebook url )。
在发送帖子时(重要的是要注意该帖子是发送到Facebook域而不是我自己的域),我向用户提供一条等待消息,当帖子完成后,我使用iframe onload事件来隐藏消息。
以下是代码:
The iframe:
<iframe name="uploader" width=2px height=2px style="visibility: hidden" onLoad="locationChange(this)"></iframe>用于隐藏消息的JavaScript,当加载iframe:时
function locationChange(ifrm)
{
alert("Iframe Change");
document.getElementById("loadingOff").style.visibility = "hidden";
}它适用于除IE9之外的所有浏览器。当我第一次输入页面时,我可以在IE9上看到“”消息。但是我在邮件发送后没有看到它(在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?
谢谢。
发布于 2012-07-08 07:59:49
getElementsByName返回元素数组。
所以写
var iframe = document.getElementsByName("uploader")[0];而不是
var iframe = document.getElementsByName("uploader");https://stackoverflow.com/questions/11381541
复制相似问题