现在的位置: 首页 > 综合 > 正文

关于javascript在IE和Firefox上的区别

2018年05月15日 ⁄ 综合 ⁄ 共 1283字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.