javascript中IE与ff的区别

1.自定义属性问题:可以使用获取常规属性的方法来获取自定义属性,也可以使用getAtribute()获取自定义属性,ff下只能使用getAttribute()获取自定义属性。

2. 在IE中可以用eval("idname")或getElementById("idname")来取得id为idname的html对象,ff下只能用后者,解决方案,统一用getElementById获取。

3.IE下html对象的id可以作为document的下属对象变量名直接使用,ff下则不能。ff下可以使用与html对象id相同的变量,ie则不能。解决方法:使用document.getElementById("idName")代替document.idName.最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义.

4.ie下添加事件函数addEventListener,ff添加attachEvent。

5.event.srcElement问题。在ie下event对象有srcElement属性,ff下event(e)对象有target属性,解决办法:var obj=event.srcElement?event.srcElement:e.target;来代替。

6.event.x与event.y 问题,IE下event对象有x,y属性,但没有pageX,pageY属性,ff下event(e)对象有pageX,pageY属性,但没有x,y属性。解决办法:

var myX=event.x?event.x:event.pageX; var myY=event.y?event.y:event.pageY;

7.window.event问题。window.event 只能在IE下运行,而不能在ff中运行。这是因为ff的even(e)只能在事件发生的现场使用。解决方案:传入一个形参e。

function doSom(e){var myEvent=e?e:(window.event?window.event:null)}

8.input.type属性问题。IE下input.type属性为只读,但ff下input.type属性为读写。解决办法:不能修改input.type的属性,如果必须要修改,可以先隐藏原来的input,然后再同样的位置再插入一个新的input元素。

9.const问题。ff下可以使用const关键字或var关键字定义常量,IE下只能用var关键字来定义常量,解决方案:统一使用var关键字定义。

10,innerText 的问题,innerText在IE中能正常工作,但innerText在ff中却不可以,需要使用texContent。 innerHTML同时被ieff等浏览器支持,但outerHTML只能被ie使用。

11.对象宽高赋值问题
问题说明:FireFox中类似 obj.style.height = imgObj.height 的语句无效。
解决方法:统一使用 obj.style.height = imgObj.height + “px”;

原文地址:https://www.cnblogs.com/pengpenglin/p/3993947.html