说说ie8和js

    技术2022-05-20  51

          今天在做项目的时候,发现原本在ie6,ie7下可以正常的代码,在ie8下就获取不到数据了。

     

          问题:众多checkbox在一起,不能够实现全选效果

          通过debugger跟踪js代码,发现documen.all.item()拿到的对象总为空,在网上查找资料发现,这是由于doctype导致的。

     

          解决:

          1.一个是在doctype前加一句<!-- --->       2.将doctype注释起来或去掉。

     

          说明:在doctype前加注释语句块,可以将doctype的功能取缔,因为doctype必须位于html的第一行,放在第二行就失去了意义。

                   加了doctype就不支持的原因在于document.all.item不是w3c推出的标准,因此要用document.getElementsByName()[0]代替它,以后写程序一定要用w3c的标准。

    ——————————————————————————————————————————————————————————————

     

          问题:在左边列表框中选中值,点击右移,右边列表框没有移动值的显示

          通过debugger跟踪js代码,发现oRight.add(oOption); 参数无效,且oOption.setAttribute("innerHTML",oRight.options[i].text); 参数无效。

     

          解决:

          1.把oRight.add(oOption); 改成oRights.options.add(oOption);

          2.将doctype注释起来或去掉。

          3.将oOption.setAttribute("innerHTML",oRight.options[i].text); 删掉

     

     

         

          此外,网页上还提供了一种解决方法,即写入:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />。不过其正确性我没有亲自验证。

     

     


    最新回复(0)