在家在写页面的时候,尤其是一些门户网站,最后项目组有人规范以下javascrīpt的写法,尽量做到一处编写,多处运行;
这里有4条经验:
1、在定义 页面元素的时候,如果该页面元素不需要被脚本调用,那么它就不需要定义其name和id属性;
2、如果需要定义页面元素的name,id属性,那么避免不同元素的name和id相同;
3、如果没有特殊需要,尽量让name和id相同,这主要是为了通用
4、在脚本中,获得元素时,尽量用document.getElementById("name / id") ,能不使用尽量不使用其他的
下面是收集的一些IE和Firefox的差异:
1. 对象问题
1.1 Form对象
现有问题:
现有代码这获得form对象通过document.forms("formName"),这样使用在IE 能接受,MF 不能。
解决方法:
改用 作为下标运算。改为document.forms["formName"]
备注
上述的改用 作为下标运算中的formName是id而name
1.2 HTML对象
现有问题:
在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能。
document.all("itemName")或者document.all("itemId")
解决方法:
使用对象ID作为对象变量名
document.getElementById("itemId")
备注
document.all是IE自定义的方法,所以请大家尽量不使用。
还有一种方式,在IE和MF都可以使用
var f = document.forms["formName "];
var o = f. itemId;
1.3 DIV对象
现有问题:
在 IE 中,DIV对象可以使用ID作为对象变量名直接使用。在 MF 中不能。
DivId.style.display = "none"
解决方法:
document.getElementById("DivId").style.display = "none"
备注
获得对象的方法不管是不是DIV对象,都使用getElementById方法。参见1.2
1.4 关于frame
现有问题
在 IE中 可以用window.testFrame取得该frame,mf中不行
解决方法
在frame的使用方面MF和IE的最主要的区别是:
如果在frame标签中书写了以下属性:
那么IE可以通过id或者name访问这个frame对应的window对象
而mf只可以通过name来访问这个frame对应的window对象
例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问
IE: window.top.frameId或者window.top.frameName来访问这个window对象
MF:只能这样window.top.frameName来访问这个window对象
另外,在mf和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签
并且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内容
也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容
1.5 窗口
现有问题
IE中可以通过showModalDialog和showModelessDialog打开模态和非模态窗口,但是MF不支持。
解决办法
直接使用window.open(pageURL,name,parameters)方式打开新窗口。
如果需要传递参数,可以使用frame或者iframe。
2. 总结
2.1 在JS中定义各种对象变量名时,尽量使用id,避免使用name。
在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能,所以在平常使用时请尽量使用id,避免只使用name,而不使用id。
2.2 变量名与某 HTML 对象 id 相同的问题
现有问题
在 MF 中,因为对象 id 不作为 HTML 对象的名称,所以可以使用与 HTML 对象 id 相同的变量名,IE 中不能。
解决方法
在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。
此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。
分享到:
相关推荐
总结javascript在IE和Firefox中兼容性问题
Javascript的IE和Firefox(火狐)兼容性解决方案
JavaScript在IE和Firefox(火狐)的不兼容问题解决
Javascript在IE和FireFox中的兼容处理
解决现有IE和firefox不兼容的问题,内有多种解决方法,请大家好好学习
JS的IE和Firefox兼容性总结
Javascript的IE和Firefox兼容性问题集合
这份文档详细描述了IE和Firefox两大浏览器对js的兼容性处理
javascript和css在IE和Firefox中的不同点及解决兼容性的方案,一共有二十五点
javascript的IE和Firefox兼容性汇编 1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行 (2)解决方法: 改用 document.formName....
详细阐述了IE和Firefox中兼容JavaScript的区别,是一份值得学习值得一观文档资料。
总结了一些常用属性在ie和firefox下的兼容问题,并附有相应的解决方法。
IE和Firefox在css,JavaScript方面的兼容性
Javascript的IE和Firefox兼容性汇编 .txt 做网页写脚本必看
Firefox与IE浏览器的javascript兼容性问题Firefox与IE浏览器的javascript兼容性问题Firefox与IE浏览器的javascript兼容性问题Firefox与IE浏览器的javascript兼容性问题Firefox与IE浏览器的javascript兼容性问题Fire...
Javascript的IE和Firefox兼容性
特别是javascript的兼容性问题,典型代表就是IE浏览器和FireFox浏览器,了解到不同之处就可以避免出现使用不同浏览器时可能会出现的兼容性问题,找了一些关于js在IE和FireFox中区别的资料,以供参考。
Javascript中如何处理浏览器兼容问题
IE和Firefox的Javascript兼容性总结