人生本是一个不断学习的过程,在这个过程中,就是你们的好帮手,下面分享的Javascript的IE和Firefox兼容性汇编懂设计的网友们快点来了解吧!
以下以 IE 代替 InternetExplorer,以 MF 代替 Mozzila Firefox
1. 问题
(1)现有问题:
现有代码中存在许多 ("") 这样的语句,不能在 MF 下运行
(2)解决方法:
改用 ""]
(3)其它
参见 2
2. 集合类对象问题
(1)现有问题:
现有代码中许多集合类对象取用时使用 (),IE 能接受,MF 不能。
(2)解决方法:
改用 [] 作为下标运算。如:("") 改为 ""。
又如:("")() 改为 ("")]
(3)其它
3.
(1)现有问题:
使用 无法在 MF 上运行
(2)解决方法:
MF 的 event 只能在事件发生的现场使用,此问题暂无法解决。可以这样变通:
原代码(可在IE中运行):
input type="button" name="someButton" value="提交" /
...
script language="javascript"
function gotoSubmit() {
...
alert(); // use
...
}
/script
新代码(可在IE和MF中运行):
input type="button" name="someButton" value="提交" /
...
script language="javascript"
function gotoSubmit(evt) {
evt = evt ? evt : ( ? : null);
&nb
来访问这个对象
mf: 只能这样win来访问这个对象
另外,在mf和ie中都可以使用("")来访问标签
并且可以通过("") = \来切换的内容
也都可以通过 = \来切换的内容
关于frame和window的描述可以参见bbs的‘window与frame’文章
以及/test/js/test_frame/目录下面的测试
----adun .12.09修改
9. 在mf中,自己定义的属性必须getAttribute()取得
10.在mf中没有 parentElement 而用
parentNode
childNodes的下标的含义在IE和MF中不同,MF使用DOM规范,childNodes中会插入空白文本节点。
一般可以通过()来回避这个问题。
当html中节点缺失时,IE和MF对parentNode的解释不同,例如
form
table
input/
/table
/form
MF中的值为, 而IE中的值为空节点
MF中节点没有removeNode方法,必须使用如下方法 ()
问题
(1)现有问题:
在 IE 中不能使用 const 关键字。如 const constVar = 32; 在IE中这是语法错误。
(2)解决方法:
不使用 const ,以 var 代替。
12. body 对象
MF的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在
13. url encoding
在js中如果书写url就直接写&不要写&例如var url = ?&;
= url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器
一般会服务器报错参数没有找到
当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&
一般MF无法识别js中的&
14. nodeName 和 tagName 问题
(1)现有问题:
在MF中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中,nodeName 的使用好象
有问题(具体情况没有测试,但我的IE已经死了好几次)。
(2)解决方法:
使用 tagName,但应检测其是否为空。
15. 元素属性
IE下 属性为只读,但是下可以修改
16. () 和 ] 的问题
(1)现有问题:
在 IE 中,getElementsByName()、] 均不能用来取得 div 元素(是否还有其它不能取的元素还不知道)。