2023年6月21日发(作者:)

Javascript多浏览器兼容性问题及解决⽅案CSS 多浏览器兼容性问题及解决⽅案问题说明:IE下,可以使⽤ (”itemName”) 或 ts ["elementName"];Firefox 下,只能使⽤ts["elementName"]。

解决⽅法:统⼀使⽤ts["elementName"]。

问题说明:IE下,可以使⽤ () 或 [] 获取集合类对象;Firefox下,只能使⽤ [ ]获取集合类对象。

解决⽅法:统⼀使⽤ [] 获取集合类对象。

问题说明:IE下,可以使⽤获取常规属性的⽅法来获取⾃定义属性,也可以使⽤ getAttribute() 获取⾃定义属性;Firefox下,只能使⽤ getAttribute() 获取⾃定义属性。

解决⽅法:统⼀通过 getAttribute() 获取⾃定义属性。

问题说明:IE下,可以使⽤ eval(”idName”) 或 getElementById(”idName”) 来取得 id 为 idName 的HTML对象;Firefox下,只能使⽤ getElementById(”idName”) 来取得 id 为 idName 的HTML对象。

解决⽅法:统⼀⽤ getElementById(”idName”) 来取得 id 为 idName 的HTML对象。

问题说明:IE下,HTML对象的ID可以作为 document 的下属对象变量名直接使⽤,Firefox下则不能;Firefox下,可以使⽤与HTML对象ID相同的变量名,IE下则不能。

解决⽅法:使⽤ mentById(”idName”) 代替 。最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,⼀律加上var关键字,以避免歧义。

问题说明:Firefox下,可以使⽤const关键字或var关键字来定义常量;IE下,只能使⽤var关键字来定义常量。

解决⽅法:统⼀使⽤var关键字来定义常量。

问题说明:IE下 属性为只读;但是Firefox下 属性为读写。

解决办法:不修改 属性。如果必须要修改,可以先隐藏原来的input,然后在同样的位置再插⼊⼀个新的input元素。

问题说明: 只能在IE下运⾏,⽽不能在Firefox下运⾏,这是因为Firefox的event只能在事件发⽣的现场使⽤。

解决⽅法:在事件发⽣的函数上加上event参数,在函数体内(假设形参为evt)使⽤ var myEvent = evt?evt:(?:null)

⽰例: