`
javaDevil
  • 浏览: 35199 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

    博客分类:
  • 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的方式也不同
  无论是操作结点还是加载方式,参考网上相关的文章即可。
 

 

3
0
分享到:
评论
4 楼 jsjxqjy 2009-06-25  
师傅的JS水平,应该是没有说的,需要多多学习
3 楼 javaDevil 2009-03-01  
jsjxqjy 写道

利用js框架就可以解决这些问题。如jquery,prototype====
jsjxqjy 写道

利用js框架就可以解决这些问题。如jquery,prototype====


不一定,还是看代码怎么写,有时返回 的 是dom对象,操作时还是要注意。
2 楼 javaDevil 2009-03-01  
  不一定啊
1 楼 jsjxqjy 2009-02-21  
利用js框架就可以解决这些问题。如jquery,prototype====

相关推荐

Global site tag (gtag.js) - Google Analytics