首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE9和事件

IE9和事件
EN

Stack Overflow用户
提问于 2012-07-08 07:46:32
回答 1查看 3.8K关注 0票数 1

在我的网站上,我有一个表单,允许用户将图片或视频发布到Facebook。因为我需要直接将文件发布到Facebook,所以我使用的是一种表单,即将文件发送到Iframe (以防止用户在帖子发送后重定向到Facebook url )。

在发送帖子时(重要的是要注意该帖子是发送到Facebook域而不是我自己的域),我向用户提供一条等待消息,当帖子完成后,我使用iframe onload事件来隐藏消息。

以下是代码:

The iframe:

代码语言:javascript
复制
<iframe name="uploader" width=2px height=2px style="visibility: hidden" onLoad="locationChange(this)"></iframe>

用于隐藏消息的JavaScript,当加载iframe:

代码语言:javascript
复制
function locationChange(ifrm) 
{
    alert("Iframe Change");
    document.getElementById("loadingOff").style.visibility = "hidden";
}

它适用于除IE9之外的所有浏览器。当我第一次输入页面时,我可以在IE9上看到“”消息。但是我在邮件发送后没有看到它(在Chrome和FireFox上,当我输入页面和发送帖子后,我看到了两次消息)。

我也试过这样做:

代码语言:javascript
复制
<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>

此外,这也是:

代码语言:javascript
复制
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?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-08 07:59:49

getElementsByName返回元素数组。

所以写

代码语言:javascript
复制
var iframe = document.getElementsByName("uploader")[0];

而不是

代码语言:javascript
复制
var iframe = document.getElementsByName("uploader");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11381541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档