您的位置:首页 > Web前端 > JavaScript

关于javascript在IE和Firefox上的区别

2009-06-22 22:35 441 查看
1.本来在IE下面网页多运行正常,可是在firefox下一点击apply控件之后,html前面的很多代码就会别网页无缘无故的吃掉,结果过来一堆代码。后来就是不知道是什么原因,干脆在代码行前面空了N个空行,结果OK啦

2.IE下,一切也运行正常,可发现SELECT控件在firefox下一点作用都起不了,感觉很是纳闷,只有跟踪代码,发现根本都没有下下去,发现在代码的属性里支持的差异啦

本来的代码是

else if (data_type == T_SELECT) {

var select_index = document.getElementById(name).selectedIndex;

form_data = name + "=" + document.getElementById(name).options(select_index).value;

}

改正过之后

else if (data_type == T_SELECT) {

var select_index = document.getElementsByName(name)[0].selectedIndex;

form_data = name + "=" + document.getElementsByName(name)[0].options【select_index】.value;

}

主要的区别就是一个是用的getElementById(name)。另一个getElementsByName(name)[0]。

另外一个重要点就是options(select_index).value,改为options【select_index】.value。

3.html中的字符比较

var aa=“my_name”

if (aa == "my")这个语句返回的是真,它其实只比较到他的某一个字符串结束就结束了,

这个一点要注意

4. HTML 对象的 id 作为对象名的问题

(1)现有问题

在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能。

(2)解决方法

用 getElementById("idName") 代替 idName 作为对象变量使用。

5. 用idName字符串取得对象的问题

(1)现有问题

在IE中,利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象,在MF 中不能。

(2)解决方法

用 getElementById(idName) 代替 eval(idName)。

6. 变量名与某 HTML 对象 id 相同的问题

(1)现有问题

在 MF 中,因为对象 id 不作为 HTML 对象的名称,所以可以使用与 HTML 对象 id 相同的变量名,IE 中不能。

(2)解决方法

在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。

此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。

(3)其它

参见 问题4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: