firefox与ie 的javascript区别(2)
时间:2010-03-14 11:30:00
9. 在mf中,自己定义的属性必须getAttribute()取得
10.在mf中没有 parentElement parement.children 而用
parentNode parentNode.childNodes
childNodes的下标的含义在IE和MF中不同,MF使用DOM规范,childNodes中会插入空白文本节点。
一般可以通过node.getElementsByTagName()来回避这个问题。
当html中节点缺失时,IE和MF对parentNode的解释不同,例如
《form》
《table》
《input/》
《/table》
《/form》
MF中input.parentNode的值为form, 而IE中input.parentNode的值为空节点
MF中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)
11.const 问题
现有问题:
在 IE 中不能使用 const 关键字。如 const constVar = 32; 在IE中这是语法错误。
解决方法:
不使用 const ,以 var 代替。
12. body 对象
MF的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在
13. url encoding
在js中如果书写url就直接写&不要写&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器
一般会服务器报错参数没有找到
当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&
一般MF无法识别js中的&
14. nodeName 和 tagName 问题
现有问题:
在MF中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中,nodeName 的使用好象
有问题(具体情况没有测试,但我的IE已经死了好几次)。
解决方法:
使用 tagName,但应检测其是否为空。
15. 元素属性
IE下 input.type属性为只读,但是MF下可以修改
16. document.getElementsByName() 和 document.all[name] 的问题
现有问题:
在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素(是否还有其它不能取的元素还不知道)。
17. 对象问题
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。
标签:javascript,firefox,ie,浏览器
0
投稿
猜你喜欢
pytorch-gpu安装的经验与教训
2022-01-11 20:23:36
PHP 巧用数组降低程序的时间复杂度
2023-11-15 09:40:02
python内置模块OS 实现SHELL端文件处理器
2023-11-24 16:41:14
jupyter notebook 调用环境中的Keras或者pytorch教程
2022-10-07 23:23:09
python 调用c语言函数的方法
2023-12-11 17:24:21
python多线程高级锁condition简单用法示例
2023-10-31 16:11:23
python3实现163邮箱SMTP发送邮件
2021-02-28 07:59:19
python中pandas对多列进行分组统计的实现
2022-06-25 03:50:03
MySQL5.6安装图解(windows7/8_64位)
2024-01-12 13:48:00
golang跳转语句goto,break,continue的使用及区别说明
2024-04-23 09:39:56
sql如何在Access中选择指定日期前的记录?
2010-06-17 12:47:00
解决python线程卡死的问题
2023-08-03 05:58:27
Python标准库笔记struct模块的使用
2024-01-01 14:21:45
Python lambda表达式filter、map、reduce函数用法解析
2022-03-30 03:52:31
Python检测端口IP字符串是否合法
2023-09-03 11:51:26
GoLang基础学习之go test测试
2024-02-06 16:28:19
Selenium自动化测试工具使用方法汇总
2022-02-10 16:26:21
CSS Hacks
2008-07-20 13:04:00
详解Python的Django框架中的模版相关知识
2023-04-22 02:46:25
Python操作word文档的示例详解
2021-11-10 02:54:51