zoukankan      html  css  js  c++  java
  • 转:js在ie和ff中的一些差异写法

    1. CSS “float” 值

    访问一个给定CSS 值的最基本句法是:object.style.property,使用驼峰写法来替换有连接符的值,例如,访问某个ID为”header”的<div>的 background-color值,我们使用如下句法:

    document.getElementById("header").style.backgroundColor= "#ccc";

    但由于”float“这个词是一个JavaScript保留字,因此我们不能用 object.style.float来访问,这里,我们可以在两种浏览器中这么做:
    在IE中这样写:

    document.getElementById("header").style.styleFloat = "left";

    在Firefox中这样写:

    document.getElementById("header").style.cssFloat = "left";
    2. 元素的推算样式

    JavaScript可以使用object.style.property句法,方便地在外部访问和修改某个CSS样式,但其限制是这些句法只能取出已设的行内样式或者直接由JavaScript设定的样式。并不能访问某个外部的样式表。为了访问元素的”推算”样式,我们可以使用下面的代码:
    在IE中这样写:

    var myObject = document.getElementById("header");
    var myStyle = myObject.currentStyle.backgroundColor;

    在Firefox中这样写:

    var myObject = document.getElementById("header");
    var myComputedStyle = document.defaultView.getComputedStyle(myObject, null);
    var myStyle = myComputedStyle.backgroundColor;
    3. 访问元素的”class”

    像”float“一样,”class“是JavaScript的一个保留字,在这两个浏览器中我们使用如下句法来访问”class”。
    在IE中这样写:

    var myObject = document.getElementById("header");
    var myAttribute = myObject.getAttribute("className");

    在Firefox中这样写:

    var myObject = document.getElementById("header");
    var myAttribute = myObject.getAttribute("class");

    This syntax would also apply using the setAttribute method.

    4. 访问<label>标签中的”for”

    就第3点中所提到的,我们同样需要使用不现的句法区分来访问<label>标签中的”for“:
    在IE中这样写:

    var myObject = document.getElementById("myLabel");
    var myAttribute = myObject.getAttribute("htmlFor");

    在Firefox中这样写:

    var = document.getElementById("myLabel");
    var myAttribute = myObject.getAttribute("for");
    5. 获取鼠标指针的位置

    计算出鼠标指针的位置对你来说可能是非常少见的,不过当你需要的时候,在IE和Firefox中的句法是不同的。这里所写出的代码将是最最基本的,也可能是某个复杂事件处理中的某一个部分。但他们可以解释其中的异同点。同时,必须指出的是结果相对于Firefox,IE会有更在的不同,这种方法本身就是有BUG的。通常,这种不同可以用”拖动位置”来得到补偿,但,那是另外一个主题的文章了: ) !
    在IE中这样写:

    var myCursorPosition = [0, 0];
    myCursorPosition[0] = event.clientX;
    myCursorPosition[1] = event.clientY;

    在Firefox中这样写:

    var myCursorPosition = [0, 0];
    myCursorPosition[0] = event.pageX;
    myCursorPosition[1] = event.pageY;
    6. 获取可见区域、窗口的大小

    有时,我们会需要找到浏览器的可视位置的大小,通常我们称之为”可见区域”。
    在IE中这样写:

    var myBrowserSize = [0, 0];
    myBrowserSize[0] = document.documentElement.clientWidth;
    myBrowserSize[1] = document.documentElement.clientHeight;

    在Firefox中这样写:

    var myBrowserSize = [0, 0];
    myBrowserSize[0] = window.innerWidth;
    myBrowserSize[1] = window.innerHeight;
    7. Alpha 透明

    好吧,这并不是一个JavaScript句法问题,而是源自于CSS的Alpha透明。但当某个物体需要淡入/出则需要JavaScript来表现,这是通过访问CSS的Alpha透明设置来完成的,通常在一个循环中完成。你需要通过来修改的JavaScript的代码如下:
    在IE中这样写:

    #myElement { filter: alpha(opacity=50); }

    在Firefox中这样写:

    #myElement { opacity: 0.5; }

    在IE中这样写:

    var myObject = document.getElementById("myElement");
    myObject.style.filter = "alpha(opacity=80)";

    在Firefox中这样写:

    var myObject = document.getElementById("myElement"); myObject.style.opacity = "0.5";
  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/dachie/p/2320038.html
Copyright © 2011-2022 走看看