如何编写兼容性好的js之抛砖引玉

 最近负责调项目中的兼容性问题,因为原来开发时候只针对iE没有在FF下面测试过,其实原来也知道,因客户方没有要求,所以就没有做,最近客户方原来负责的项目主管换了,新来的要求蛮高的,其中兼容性就是其中一条。已经调了一半,目前发现的问题经过本人整理如下。不好之处,敬请指正,不甚感激。

 

    1:获取指定ID和Name的元素的方法

     document.getElementById
       document.getElementsByName
       document.all.
       document.getElementsByTagName
       document.getSelection
     第一个是IE和FF通用的,而第二个在IE和FF返回的结果,IE能得到结果,而FF得不到
  第三个是IE独有的,不建议使用
   如<div name='demo1'>dem o1</div>
      使用document.getElementByName('demo1')在IE下是可以得到对象的,而FF为null
  但是对于表单元素FF可以得到对象。
  
  2:操作select的方法
 
    下面的方法是在IE可以用
   var res=XMLHttpReq.responseXML.getElementsByTagName("res");
    var list = document.all.list;
        list.options.length=0;
        list.add(new Option("---请选择产品型号---",""));
        for(var i=0;i<res.length;i++){
         list.add(new Option(res[i].firstChild.data,res[i].firstChild.data));
        }

    通用的是如下
    var res=XMLHttpReq.responseXML.getElementsByTagName("res");
           var list = document.getElementById('list');
            list.options.length=0;
           list.options[list.length] = new Option("---请选择产品型号---","");
          for(var i=0;i<res.length;i++){
          list.options[list.length] = new Option(res[i].firstChild.data,res[i].firstChild.data);
         }


     3:操作滤镜的方法
   滤镜本来是IE独有的,w3c组织将其列入标准,ff从2.0开始支持
      if(currentID.filters){//ie 
          currentID.filters.alpha.opacity+=20;
      }else if(currentID.style){//ff  
       currentID.style.MozOpacity+=20; 
     }

 

   4:访问父节点的方法要用parentNode而不是用IE独有的parentElement,遵从dom标准操作规范即可

 

   5:操作xml的方式也不同
  无论是操作结点还是加载方式,参考网上相关的文章即可。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值