JS兼容性测试

1.集合类对象问题
  说明:IE下,可以使用()或[]获取集合类对象;
  Firefox下,只能使用[]获取集合类对象. 
  解决方法:统一使用[]获取集合类对象.

 

        <script type="text/javascript">
            var a = new Number(0);
            var b = new Number(1);
            var c = new Date();
            
            var tem = [a,b,c];
            for(var i = 0; i < tem.length; i++){
                document.write(tem[i] + "</br>");
            }
            
        </script>

 

  但是当使用document.write(tem(0) + "</br>")时, IE8报错,缺少函数,Firefox报错函数未定义,所以我的测试结果是IE 也不可以使用()来获取集合类对象

2.HTML对象获取问题
  FireFox:document.getElementById("idName");
  ie:document.idname或者document.getElementById("idName").
  解决办法:统一使用document.getElementById("idName");

     完全兼容的代码:

    <body>
        <div id="test"></div>
        <script type="text/javascript">
            var test = document.getElementById("test");
            test.innerHTML = "Just test";
        </script>
    </body>

       但是把代码改为 var test = document.test; IE报错test is null or not an object ,FireFox 报错test is undefined。

       所以其实这种访问方式在IE里面也不可以。

 

3.const问题

      说明:Firefox下,可以使用const关键字或var关键字来定义常量;

      IE下,只能使用var关键字来定义常量. 

     解决方法:统一使用var关键字来定义常量.

     测试结果: FireFox可以使用const关键字,IE则提示语法错误

 

4.window.event问题

      说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.  

      Firefox必须从源处加入event作参数传递。Ie忽略该参数,用window.event来读取该event。

      解决方法: 
  Submitted(event)"/>   …

  <script   language="javascript">  
    function   Submitted(evt)   {  
    evt=evt?evt:(window.event?window.event:null);
  }  
  </script>

 

      测试结果:如以上解决办法一致。

5.event.x与event.y问题
  说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;
  Firefox下,even对象有pageX,pageY属性,但是没有x,y属性. 
  解决方法:使用mX(mX   =   event.x   ?   event.x   :   event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX. 

 

 

 

posted @ 2012-04-22 22:04  纳爱斯  阅读(859)  评论(0编辑  收藏  举报