欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript在IE和Firefox瀏覽器下的7個(gè)差異兼容寫(xiě)法小結(jié)

 更新時(shí)間:2010年06月18日 12:00:18   作者:  
盡管那需要用長(zhǎng)串的、沉悶的不同分支代碼來(lái)應(yīng)付不同瀏覽器的日子已經(jīng)過(guò)去,偶爾還是有必要做一些簡(jiǎn)單的區(qū)分和目標(biāo)檢測(cè)來(lái)確保某塊代碼能在用戶(hù)的機(jī)器上正常運(yùn)行。
在這篇文章中,作者介紹了7個(gè)JavaScript在IE和Firefox中存在的差異。
1. CSS “float” 值
訪(fǎng)問(wèn)一個(gè)給定CSS 值的最基本句法是:object.style.property,使用駝峰寫(xiě)法來(lái)替換有連接符的值,例如,訪(fǎng)問(wèn)某個(gè)ID為”header”的<div>的 background-color值,我們使用如下句法:

document.getElementById("header").style.backgroundColor= "#ccc";
但由于”float“這個(gè)詞是一個(gè)JavaScript保留字,因此我們不能用 object.style.float來(lái)訪(fǎng)問(wèn),這里,我們可以在兩種瀏覽器中這么做:
在IE中這樣寫(xiě):

document.getElementById("header").style.styleFloat = "left";
在Firefox中這樣寫(xiě):

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

2. 元素的推算樣式
JavaScript可以使用object.style.property句法,方便地在外部訪(fǎng)問(wèn)和修改某個(gè)CSS樣式,但其限制是這些句法只能取出已設(shè)的行內(nèi)樣式或者直接由JavaScript設(shè)定的樣式。并不能訪(fǎng)問(wèn)某個(gè)外部的樣式表。為了訪(fǎng)問(wèn)元素的”推算”樣式,我們可以使用下面的代碼:
在IE中這樣寫(xiě):

var myObject = document.getElementById("header");
var myStyle = myObject.currentStyle.backgroundColor;
在Firefox中這樣寫(xiě):

var myObject = document.getElementById("header");
var myComputedStyle = document.defaultView.getComputedStyle(myObject, null);
var myStyle = myComputedStyle.backgroundColor;
3. 訪(fǎng)問(wèn)元素的”class”
像”float“一樣,”class“是JavaScript的一個(gè)保留字,在這兩個(gè)瀏覽器中我們使用如下句法來(lái)訪(fǎng)問(wèn)”class”。
在IE中這樣寫(xiě):

var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("className");
在Firefox中這樣寫(xiě):

var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("class");
This syntax would also apply using the setAttribute method.

4. 訪(fǎng)問(wèn)<label>標(biāo)簽中的”for”
就第3點(diǎn)中所提到的,我們同樣需要使用不現(xiàn)的句法區(qū)分來(lái)訪(fǎng)問(wèn)<label>標(biāo)簽中的”for“:
在IE中這樣寫(xiě):

var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("htmlFor");
在Firefox中這樣寫(xiě):

var = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("for");
5. 獲取鼠標(biāo)指針的位置
計(jì)算出鼠標(biāo)指針的位置對(duì)你來(lái)說(shuō)可能是非常少見(jiàn)的,不過(guò)當(dāng)你需要的時(shí)候,在IE和Firefox中的句法是不同的。這里所寫(xiě)出的代碼將是最最基本的,也可能是某個(gè)復(fù)雜事件處理中的某一個(gè)部分。但他們可以解釋其中的異同點(diǎn)。同時(shí),必須指出的是結(jié)果相對(duì)于Firefox,IE會(huì)有更在的不同,這種方法本身就是有BUG的。通常,這種不同可以用”拖動(dòng)位置”來(lái)得到補(bǔ)償,但,那是另外一個(gè)主題的文章了: ) !
在IE中這樣寫(xiě):

var myCursorPosition = [0, 0];
myCursorPosition[0] = event.clientX;
myCursorPosition[1] = event.clientY;
在Firefox中這樣寫(xiě):

var myCursorPosition = [0, 0];
myCursorPosition[0] = event.pageX;
myCursorPosition[1] = event.pageY;
6. 獲取可見(jiàn)區(qū)域、窗口的大小
有時(shí),我們會(huì)需要找到瀏覽器的可視位置的大小,通常我們稱(chēng)之為”可見(jiàn)區(qū)域”。
在IE中這樣寫(xiě):

var myBrowserSize = [0, 0];
myBrowserSize[0] = document.documentElement.clientWidth;
myBrowserSize[1] = document.documentElement.clientHeight;
在Firefox中這樣寫(xiě):

var myBrowserSize = [0, 0];
myBrowserSize[0] = window.innerWidth;
myBrowserSize[1] = window.innerHeight;
7. Alpha 透明
好吧,這并不是一個(gè)JavaScript句法問(wèn)題,而是源自于CSS的Alpha透明。但當(dāng)某個(gè)物體需要淡入/出則需要JavaScript來(lái)表現(xiàn),這是通過(guò)訪(fǎng)問(wèn)CSS的Alpha透明設(shè)置來(lái)完成的,通常在一個(gè)循環(huán)中完成。你需要通過(guò)來(lái)修改的JavaScript的代碼如下:
在IE中這樣寫(xiě):

#myElement { filter: alpha(opacity=50); }
在Firefox中這樣寫(xiě):

#myElement { opacity: 0.5; }
在IE中這樣寫(xiě):

var myObject = document.getElementById("myElement");
myObject.style.filter = "alpha(opacity=80)";
在Firefox中這樣寫(xiě):

var myObject = document.getElementById("myElement"); myObject.style.opacity = "0.5";
還有什么不同的嗎?
這是作者(via: 7 JavaScript Differences Between Firefox & IE)個(gè)人根據(jù)自己的經(jīng)驗(yàn)整理的,而sofish在JavaScript上依然是一個(gè)新手。如果還有更多的不同,歡迎大家提出來(lái),分享出來(lái),共同學(xué)習(xí)!

相關(guān)文章

  • UniApp使用manifest.json應(yīng)用配置的超詳細(xì)教學(xué)

    UniApp使用manifest.json應(yīng)用配置的超詳細(xì)教學(xué)

    這篇文章主要給大家介紹了關(guān)于uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置,manifest.json文件是應(yīng)用的配置文件,用于指定應(yīng)用的名稱(chēng)、圖標(biāo)、權(quán)限等,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • js利用FileReader讀取本地文件或者blob方式

    js利用FileReader讀取本地文件或者blob方式

    這篇文章主要介紹了js利用FileReader讀取本地文件或者blob方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • JS實(shí)現(xiàn)可直接顯示網(wǎng)頁(yè)代碼運(yùn)行效果的HTML代碼預(yù)覽功能實(shí)例

    JS實(shí)現(xiàn)可直接顯示網(wǎng)頁(yè)代碼運(yùn)行效果的HTML代碼預(yù)覽功能實(shí)例

    這篇文章主要介紹了JS實(shí)現(xiàn)可直接顯示網(wǎng)頁(yè)代碼運(yùn)行效果的HTML代碼預(yù)覽功能,通過(guò)獲取文本框內(nèi)容并在新窗口打印輸出來(lái)實(shí)現(xiàn)直接運(yùn)行html代碼的功能,簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • bootstrap導(dǎo)航條實(shí)現(xiàn)代碼

    bootstrap導(dǎo)航條實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了bootstrap導(dǎo)航條的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • js中幾種循環(huán)的退出方式實(shí)例總結(jié)

    js中幾種循環(huán)的退出方式實(shí)例總結(jié)

    提到在一段程序中如果碰到需要終止,結(jié)束一個(gè)循環(huán),函數(shù)或者一段代碼,一般會(huì)想到以下這幾個(gè)關(guān)鍵字return、continue、break,這篇文章主要給大家介紹了關(guān)于js中幾種循環(huán)的退出方式,需要的朋友可以參考下
    2022-12-12
  • Javascript循環(huán)刪除數(shù)組中元素的幾種方法示例

    Javascript循環(huán)刪除數(shù)組中元素的幾種方法示例

    這篇文章主要給大家介紹了關(guān)于Javascript循環(huán)刪除數(shù)組中元素的幾種方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • JS原生帶縮略圖的圖片切換效果

    JS原生帶縮略圖的圖片切換效果

    這篇文章主要介紹了JS原生帶縮略圖的圖片切換效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-10-10
  • JS實(shí)現(xiàn)的文字間歇循環(huán)滾動(dòng)效果完整示例

    JS實(shí)現(xiàn)的文字間歇循環(huán)滾動(dòng)效果完整示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的文字間歇循環(huán)滾動(dòng)效果,涉及javascript結(jié)合時(shí)間函數(shù)定時(shí)觸發(fā)實(shí)現(xiàn)頁(yè)面元素動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2018-02-02
  • js利用div背景,做一個(gè)豎線(xiàn)的效果。

    js利用div背景,做一個(gè)豎線(xiàn)的效果。

    嘗試了好多種css屬性,總是無(wú)法達(dá)成目標(biāo)。主要就是height這個(gè)屬性,100%,對(duì)于ff似乎并不起什么作用,既然我將其父容器的高度也設(shè)置為100%,依然沒(méi)有效果。這樣的話(huà),就無(wú)法顯示出平鋪的背景,想法也得不到實(shí)現(xiàn)。
    2008-11-11
  • JS獲取當(dāng)前腳本文件的絕對(duì)路徑

    JS獲取當(dāng)前腳本文件的絕對(duì)路徑

    這篇文章主要介紹了JS獲取當(dāng)前腳本文件的絕對(duì)路徑的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評(píng)論