zoukankan      html  css  js  c++  java
  • JS的IE和Firefox兼容性汇编

    以下以 IE 代替 Internet Explorer,以 MF 代替 Mozzila 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 相同的变量名,以减少错误。
  • 相关阅读:
    codechef FNCS
    bzoj2653 middle
    CF698F Coprime Permutation
    CF538H Summer Dichotomy
    CF930E Coins Exhibition
    CF468D Tree
    CF528E Triangles3000
    BZOJ 4066: 简单题
    BZOJ 4300: 绝世好题
    BZOJ 4520: [Cqoi2016]K远点对
  • 原文地址:https://www.cnblogs.com/QDuck/p/531021.html
Copyright © 2011-2022 走看看