今天在做项目的时候,发现原本在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" />。不过其正确性我没有亲自验证。