Keep on going, never give up.

Javascript同时兼容IE和FIREFOX的一些注意点

我们在使用Javascript时候,经常会出现不能同时兼容IE和FIREFOX现象,很多站长或者网站开发人员很容易忽略这点,一般在测试的时候只考虑到界面的显示兼容,而对程序的实际运行情况缺乏应有的测试。这里特别精简汇总一下Javascript的相关兼容性问题,提醒站长们注意。

Javascript获取文档对象相关注意问题

1、表单内对象:document.form1.item("abc")用法不能兼容FIREFOX,只对IE有效,正确用法是document.form1.element["abc"]。

2、Document文档对象ID:在IE中可以直接作为document的下属对象变量使用,在FIREFOX上则有问题,解决方法用getElement("abc")代替直接使用ID名取用对象。

3、集合类对象:集合类对象的取用方法:document.form1("abc")应当改为document.form1["abc"],document.getElementByName("abc")应当改为document.getElementByName["abc"]

4、获取其它element建议使用getElementById或者getElementByTagName。

5、获取父节点建议使用parentNode来获取,可以同时兼容IE和FF。


window event事件相关注意问题:

1、window.event只对IE有效,无法在FIREFOX上运行,正确用法,使用带参数的函数调用,如
<input type="button" name="Submit1" value="提交" onclick="chksubmit(event)"/>
<script language="javascript">
function chksubmit(evt)
{
evt=evt?evt:(window.event?window.event:NULL);//根据实际是否传值进来判断浏览器类型,进而选择性赋值EVENT对象
....
}
</script>

2、event.x和event.y的问题,必须使用ex=event.x?event.x:event.pageX;ey=event.y?event.y:event.pageY;根据实际运行情况选择,选择项的前者是IE支持,后者为FIREFOX支持。

操作获取IFRAME的相关注意问题:

在IE可以通过FRAME的ID和NAME都可以访问IFRAME对象,但是FIREFOX只能通过NAME属性访问,最好的方法把IFRAME的名字和ID设为相同值,就可以使用window.top.frameName或window.top.frameId来访问,反正两者设相同值,运行起来效果一样。或者也可以统一直接使用window.top.getElementById("frameId")形式获取。

setAttribute和getAttribute

在IE上使用setAttribute和getAttribute对class进行设置时候,会无效,但是FIREFOX上可以。比如obj.setAttribute('class',‘Open’);,区别如下:

IE必须使用:obj.setAttribute('className',‘Open’);

FF必须使用:obj.setAttribute('class',‘Open’);

兼容可以写上以上两种或直接改成obj.className=‘Open’;形式。

getElementsByName

getElementsByName按照w3c标准是按name属性进行查询的,在IE上则是按照id属性进行查询,可以通过为元素同时增加name和id属性进行兼容。


Javascript兼容IE和FIREFOX的其它注意事项:
1、IE要与FIREFOX兼容JAVASCRIPT,要尽量不要让变量名与控件ID名相同,非得相同也要记得为变量加上var声明才可以;
2、不要使用const声明变量,因为IE不支持const,用var就可以了;
3、URL地址书写中最好不要使用&amp,建议直接使用&,这是由于遵守规范的兼容性问题决定的,建议实际使用测试一下;
4、在使用nodeName和tagName时候,一定记得判断是否为空,推荐使用tagName;

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.