关于IE和FF创建元素的区别

    最近在做一个上传文件的组件!因此要用JS生成页面元素!首先在FF先测试时没有问题的~但是在IE下测试的时候就出现问题了:在IE下生成元素时是不能为其设置name属性的!这样就导致了某些元素间目标指定不明确了!例如我要把form的target指定iframe时,由于在IE下不能成功设置iframe的name属性(已设ID)!从而导致新开页面提交刷新的问题出现!
    那么,应该怎么解决呢?在网上一番搜索后得到的结论是:IE支持三种设置name属性的方法,FF支持一种设置name属性的方法!让我们来看看吧:
    IE:1 、document.createElement("<input type=text>")  
        2、 document.createElement("<input>")
        3、 document.createElement("input")

      FF:
document.createElement("input");document.setAttribute(name,value);
           或者 var form=document.createElement("input");document.setAttribute("form");
                form.name="form1";( IE不支持此方法设name属性)
   
    IE: 
           1、 node.insertBefore(Element)
           2、 node.insertAfter(Element)
           3 、node.appendChild(Element)


    FF:1、 node.appendChild()

    当解决了这个创建元素问题后,还有个问题就是IE和FF上传文件是form的编码认识是存在差异的,也就是说IE下传到服务端的ContentType仍然是:"application/x-www-form-urlencoded”!所以我们就应该判断浏览器的类型设置不同的编码!
 
    IE: form.encoding = "multipart/form-data"

    FF: form.enctype = "multipart/form-data";  

    这样就能解决文件上传编码问题了!    
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值