1. HTML 对象的 id 作为对象名的问题
IE:HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用
FF:不支持
解决方法:使用document.getElementById替代document.all
2. 如果控件只有name,没有id, 用getElementById时:
IE:可以找到对象
FF:返回NULL
解决方法:所有控件必须设置ID属性
3. Evel:
IE:支持,利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象
FF:不支持。
解决方法:统一使用getElementById(idName) 代替 eval(idName)。
4. Event:
IE:用全局对象window.event
FF:event只能在事件发生的现场使用,在调用函数时传入event对象
解决方法:使用之前做一下浏览器类型判断,各用各的。
5. 对象名称中美元符号‘$’改为使用下划线‘_’
6. 集合类对象问题
IE:可以使用()或[]获取集合类对象
FF:只能使用[]获取集合类对象
现有代码中存在许多,不能在 FF 下运行
解决方法:统一使用[]获取集合类对象。document.form.item("itemName") 这样的语句改为document.form.elements["elementName"]
7. 变量名与某 HTML 对象 id 相同的问题
IE:不能使用与 HTML 对象 id 相同的变量名
FF:可以使用
解决方法:在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。
此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。
8. Event定位问题
IE:支持event.x 和event.y
FF:支持event.pageX和event.pageY
解决方法,统一使用event.clientX和event.clientY,但是在FF中event.clientX 与 event.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的。如果要完全一样,可以判断浏览器类型后对应使用。
9. 父结点的问题
IE:parentElement parentElement.children
FF:parentNode parentNode.childNodes
childNodes的下标的含义在IE和FF中不同,FF使用DOM规范,childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。
当html中节点缺失时,IE和FF对parentNode的解释不同,例如
<form> <table> <input/> </table> </form> |
IE:input.parentNode的值为空节点
FF:input.parentNode的值为form
FF中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)
10. const 问题
现有问题:
IE:不支持 const 关键字。如 const constVar = 32; 在IE中这是语法错误。
FF:支持
解决方法:不使用 const ,以 var 代替。
11. body 对象
IE:在body标签完全被读入之后才存在
FF:在body标签没有被浏览器完全读入之前就存在
12. 自定义属性问题
IE:可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性
FF:只能使用getAttribute()获取自定义属性.
解决方法:统一通过getAttribute()获取自定义属性
13. event.srcElement问题
IE:even.srcElement
FF:even.target
解决方法:使用时判断浏览器类型,各用各的。
14. 模态和非模态窗口
IE:支持模态和非模态窗口
FF:不支持
解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口。
15. innerText
IE:innerText
FF:textContent
16. 类似 obj.style.height = imgObj.height 的语句
IE:有效
FF:无效
解决方法:统一使用obj.style.height = imgObj.height + 'px';
相关推荐
IE和Firefox的鼠标滚轮事件JavaScript代码
javascript的IE和Firefox兼容性汇编 1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行 (2)解决方法: 改用 document.formName....
在IE和firefox中调试javascript的教程
JavaScript实现的适合做娱乐频道的焦点图代码,兼容IE和Firefox.zip
以前一直在IE8中测试网站,后来写的一部分含有Ajax的代码出现了故障,不得已下载了Firefox以及它的插件Firebug,才发现,FF不支持windows.event事件。于是换了一种思路。
Firebug插件虽然功能强大,但是它已经和Firefox浏览器无缝地结合在一起,使用简单直观。如果你担心它会占用太多的系统资源,也可以方便地启用/关闭这个插件,甚至针对特定的站点开启这个插件。 在安装好插件之后,...
前支持javascript调试功能的工具越来越多,主要分为ie和firefox两大阵营。其他浏览器上很难调试javascript。而Javascript Debug Toolkit解决了这个问题,可能在所有支持ajax请求的浏览器上调试javascript.
有人喜欢用ie, firefox,还有人喜欢用腾讯tt,maxthon等等。虽然名字可能有很多种,但是内核我们知道下就没问题了。如IE内核的:IE,maxthon,tt都是。当然还有netscape内核!看大家怎么去判断! 由于在开发时碰上这个...
今天测试代码时,发现不少IE可以运行的ajax,但在FF中报错。IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结如下,需要的朋友可以看下,对于以后的代码书写一定要考虑到多浏览器的兼容性。
网上提供的代码,多是仅支持ie,下面这个是软件开发网特别为大家整理的兼容firefox版本的。 支持按键盘方向键翻页跳转的代码支持ie,firefox 说明:按键盘← →方向键 或 PageUp PageDown键直接翻页 [Ctrl+A ...
JavaScript解决预览上传问题,目前支持IE7、IE8、火狐浏览器; 上网查找了大量资料,然而能用的代码却寥寥无几;竟然弄出来了,就共享给大家。
产生的代码兼容IE,FireFox等常用浏览器。本软件可免费使用和转载,但严禁用于商业用途。 本软件不同于网络上已有的同类软件,现有的都是网页版的,本软件是完全的绿色软件,下载后直接运行即可,界面很简单。包括...
修正了原来《http://download.csdn.net/download/guo8ke/1512418》的bug,本选项卡是自行编写的选项卡代码, 可以动态生成选显卡,关闭选项卡, 每个选项卡 对应也可页面。...本选项卡代码经过测试,兼容IE和火狐。
经软件开发网编辑整合的... js关闭窗口兼容firefox、chrome、ie 代码如下: function windowclose() { var browserName = navigator.appName; if (browserName==”Netscape”) { window.open(”, ‘_self’, ”); window
主要介绍了设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)。需要的朋友可以过来参考下,希望对大家有所帮助
Javascript 代码 代码如下: function keyNumAll(evt){ //兼容IE和Firefox获得keyBoardEvent对象 evt = (evt) ? evt : ((window.event) ? window.event : “”); var key = evt.keyCode?evt.keyCode:evt.which;//...
尽管那需要用长串的、沉闷的不同分支代码来应付不同浏览器的日子已经过去,偶尔还是有必要做一些简单的区分和目标检测来确保某块代码能在用户的机器上正常运行。