<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="ARTICLE @ XOOPS powered by FeedCreator" -->
<rss version="0.91">
    <channel>
        <title>睡蓮‧池水間 :: 文章</title>
        <description><![CDATA[文章XML]]></description>
        <link>http://waterlily-lsl.com/modules/article/view.article.php/178/c2</link>
        <lastBuildDate>Sat, 11 Feb 2012 00:00:11 +0200</lastBuildDate>
        <generator>ARTICLE @ XOOPS powered by FeedCreator</generator>
        <image>
            <url>http://waterlily-lsl.com/modules/article/images/logo.png</url>
            <title>睡蓮‧池水間 :: 文章</title>
            <link>http://waterlily-lsl.com/modules/article/</link>
            <width>92</width>
            <height>52</height>
            <description>文章XML</description>
        </image>
        <language>zh-TW</language>
        <managingEditor>waterlily at waterlily-lsl dot com</managingEditor>
        <webMaster>waterlily at waterlily-lsl dot com</webMaster>
        <category>文章</category>
        <item>
            <title>Firefox和IE之間7個JavaScript的差異</title>
            <link>http://waterlily-lsl.com/modules/article/view.article.php/178/c2</link>
            <description><![CDATA[類別: 語言集<br />來源: (http://www.impressivewebs.com/7-javascript-differences-between-firefox-ie/)<span style="background:#392337;border:1px solid #6a4466;padding:2px;margin:5px 0 30px;font-size:13px">譯者：糖伴西紅柿</span>
<span style="background:#392337;border:1px solid #6a4466;padding:2px;margin:0 0 5px;font-size:13px">譯文出處：&#119;ww.qianduan.net/between-firefox-and-ie-differences-7-javascript.html</span>
<br /><br />

盡管 JavaScript 歷史上使用冗長而令人生厭的代碼塊來標的特定瀏覽器的時期已經結束了，但是偶爾使用一些簡單的代碼塊和對象檢測來確保一些代碼在用戶機器上正常工作依然是必要的。<br /><br />

這篇文章中，我會略述一下 Internet Explorer 和 Firefox 在 JavaScript 語法上不同的 7 個方面。<br /><br />

<strong class="A_strong">1. CSS “float” 屬性</strong><br /><br />

獲取給定對象的特定 CSS 屬性的基本語法是 object.style 屬性，而且有連字符的屬性要用駱駝命名法來代替。例如，獲取一個 ID 為 “header” 的 div 的 background-color 屬性，我們要用如下語法：<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>document.getElementById(&quot;header&quot;).style.borderBottom= &quot;1px solid #ccc&quot;;</pre></div><br />

但是由於 “float” 是 JavaScript 的保留詞，我們就無法使用 object.style.float 來獲取 “float” 屬性了。以下是我們在兩種瀏覽器中的使用的方法：<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>document.getElementById(&quot;header&quot;).style.styleFloat = &quot;left&quot;;</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>document.getElementById(&quot;header&quot;).style.cssFloat = &quot;left&quot;;</pre></div><br />

<strong class="A_strong">2. 元素的計算樣式</strong><br /><br />

通過使用上述的 object.style.property， JavaScript 可以很容易的獲取和修改對象的設定 CSS 樣式。但是這一語法的局限在於，它只能取得內聯在 HTML 裡的樣式，或者直接使用 JavaScript 設定的樣式。style 對象不能獲取使用外部樣式表設定的樣式。為了獲取對象的“計算樣式”，我們使用以下代碼：<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;header&quot;);   
var myStyle = myObject.currentStyle.backgroundColor;
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;header&quot;);
var myComputedStyle = document.defaultView.getComputedStyle(myObject, null);
var myStyle = myComputedStyle.backgroundColor;
</pre></div><br />

<strong class="A_strong">3. 獲取元素的”class”屬性</strong><br /><br />

類似於”float”屬性的情況，這兩種瀏覽器使用不同的 JavaScript 方法來獲取這個屬性。<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;header&quot;);
var myAttribute = myObject.getAttribute(&quot;className&quot;);
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;header&quot;);
var myAttribute = myObject.getAttribute(&quot;class&quot;);
</pre></div><br />

<strong class="A_strong">4. 獲取 label 標籤的 “for” 屬性</strong><br /><br />

和 3. 一樣，使用 JavaScript獲取 label 的 “for” 屬性也有不同語法。<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;myLabel&quot;);
var myAttribute = myObject.getAttribute(&quot;htmlFor&quot;);
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;myLabel&quot;);
var myAttribute = myObject.getAttribute(&quot;for&quot;);
</pre></div><br />

對於 setAtrribute 方法來說也是同樣的語法。<br /><br />

<strong class="A_strong">5. 獲取光標位置</strong><br /><br />

獲取元素的光標位置比較少見，如果需要這麽做，IE 和 Firefox 的語法也是不同的。這個示例代碼是相當基礎的，一般用作許多複雜事件處理的一部分，這裡僅用來描述差異。需要注意的是，IE 中的結果和 Firefox 中是不同的，因此這個方法有些問題。通常，這個差異可以通過獲取 “滾動位置” 來補償 － 但那是另外一篇文章的課題了。<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myCursorPosition = [0, 0];
myCursorPosition[0] = event.clientX;
myCursorPosition[1] = event.clientY;
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myCursorPosition = [0, 0];
myCursorPosition[0] = event.pageX;
myCursorPosition[1] = event.pageY;
</pre></div><br />

<strong class="A_strong">6. 獲取視窗或瀏覽器窗口的尺寸</strong><br /><br />

有時需要找出瀏覽器的有效窗口空間的尺寸，一般成為“視窗”。<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myBrowserSize = [0, 0];
myBrowserSize[0] = document.documentElement.clientWidth;
myBrowserSize[1] = document.documentElement.clientHeight;
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myBrowserSize = [0, 0];
myBrowserSize[0] = window.innerWidth;
myBrowserSize[1] = window.innerHeight;
</pre></div><br />

<strong class="A_strong">7. Alpha 透明</strong><br /><br />

嗯，這其實不是 JavaScript 的語法項目 – alpha 透明是通過 CSS 來設置的。但是當對象通過 JavaScript 設置為淡入淡出時，這就需要通過獲取 CSS 的 alpha 設定來實現，一般是在循環內部。要通過以下 JavaScript 來改變 CSS 代碼：<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
#myElement {
filter: alpha(opacity=50);
}
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
#myElement {
opacity: 0.5;
}
</pre></div><br />

要使用 JavaScript 獲取這些值，需要使用 style 對象：<br /><br />

IE 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;myElement&quot;);
myObject.style.filter = &quot;alpha(opacity=80)&quot;;
</pre></div><br />

Firefox 語法：
<div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
var myObject = document.getElementById(&quot;myElement&quot;);
myObject.style.opacity = &quot;0.5&quot;;
</pre></div><br />

當然，已經說到了，一般是在循環中間來改變 opcity/alpha，來創建動畫效果，但這是個簡單的例子，只是為了明白地描述方法是如何實現地。<br />]]></description>
            <author>睡蓮</author>
            <pubDate>Tue, 26 May 2009 22:52:49 +0200</pubDate>
        </item>
    </channel>
</rss>

