IE9以下和chrome兼容性的问题

1 篇文章 0 订阅
1 篇文章 0 订阅

IE9以下和chrome兼容性的问题

今天拿到一份非常老旧的代码,修改一下chrome兼容的问题,折腾了一下发现是代码不规范导致!

首先问题是这样的, 下拉菜单在IE9及以下正常打开无误,在chrome中下拉菜单不能正常打开。

IE9是这样的,如下:


chrome是这样的,如下:


然后debugger了一下代码,得到以下错误。JS代码通过document.getElementsById("channelId").style.display='block'。


html代码如下: 代码中并没有ID属性,只有一个name属性。


解决办法,如下: 换成getElementsByName("channelID")[0].style.display='block'。


解决完之后,我好像发现了点什么? IE10下的浏览器,是不是 name 和 id 这两个属性都可以通过 document.getElementById()拿到值啊? 最后找到的真相!在 IE6 IE7 IE8(Q) 中,支持以 document.getElementById(elementName) 的方式获取元素,而其他浏览器的任何元素均不支持该方式。

解决方案
在使用 document.getElementById 方法获取页面元素时,应传入元素的 id 属性值,而不能使用元素的 name 属性值。同时需注意页面中的元素的 id 属性值不能与其他元素的 name 属性值有重复。

最后 我始终认为这跟浏览器没多少关系。为啥当初写的时候不遵守规范呢?document.getElementById()  为啥在元素中不写上ID属性呢?虽然问题不大,但是想要兼容其他浏览器的时候,整个系统都要开始改了,然后开始反复的填坑,挖坑。这也是一种资源上的浪费哇!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值