IE與Firefox在JavaScript上的7個(gè)不同句法分享
1. CSS "float" 值
訪問(wèn)一個(gè)給定CSS 值的最基本句法是:object.style.property,使用駝峰寫(xiě)法來(lái)替換有連接符的值,例如,訪問(wèn)某個(gè)ID為"header"的<div>的 background-color值,我們使用如下句法:
document.getElementById("header").style.backgroundColor= "#ccc";
但由于"float"這個(gè)詞是一個(gè)JavaScript保留字,因此我們不能用 object.style.float來(lái)訪問(wèn),這里,我們可以在兩種瀏覽器中這么做:
在IE中這樣寫(xiě):
document.getElementById("header").style.styleFloat = "left";
在Firefox中這樣寫(xiě):
document.getElementById("header").style.cssFloat = "left";
2. 元素的推算樣式
JavaScript可以使用object.style.property句法,方便地在外部訪問(wèn)和修改某個(gè)CSS樣式,但其限制是這些句法只能取出已設(shè)的行內(nèi)樣式或者直接由JavaScript設(shè)定的樣式。并不能訪問(wèn)某個(gè)外部的樣式表。為了訪問(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. 訪問(wèn)元素的"class"
像"float"一樣,"class"是JavaScript的一個(gè)保留字,在這兩個(gè)瀏覽器中我們使用如下句法來(lái)訪問(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. 訪問(wèn)<label>標(biāo)簽中的"for"
就第3點(diǎn)中所提到的,我們同樣需要使用不現(xiàn)的句法區(qū)分來(lái)訪問(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ì)需要找到瀏覽器的可視位置的大小,通常我們稱之為"可見(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ò)訪問(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";
相關(guān)文章
Js實(shí)現(xiàn)京東無(wú)延遲菜單效果實(shí)例(demo)
本篇文章主要介紹了Js實(shí)現(xiàn)京東無(wú)延遲菜單效果實(shí)例(demo) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06每天一篇javascript學(xué)習(xí)小結(jié)(Boolean對(duì)象)
這篇文章主要介紹了javascript中的Boolean對(duì)象知識(shí)點(diǎn),對(duì)Boolean對(duì)象的基本使用方法進(jìn)行解釋,一段很詳細(xì)的代碼介紹,感興趣的小伙伴們可以參考一下2015-11-11JS奇技之利用scroll來(lái)監(jiān)聽(tīng)resize詳解
這篇文章主要給大家介紹了JS奇技之利用scroll來(lái)監(jiān)聽(tīng)resize的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06關(guān)于layer.js使用心得-向彈出框傳值問(wèn)題
這篇文章主要介紹了關(guān)于layer.js使用心得-向彈出框傳值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11點(diǎn)擊按鈕或鏈接不跳轉(zhuǎn)只刷新頁(yè)面的腳本整理
點(diǎn)擊按鈕或鏈接時(shí)不跳轉(zhuǎn)只刷新頁(yè)面,在某些情況下還是比較實(shí)用的,下面整理些不錯(cuò)的示例,感興趣的朋友可以參考下2013-10-10原生JS實(shí)現(xiàn)的雪花飄落動(dòng)畫(huà)效果
這篇文章主要介紹了原生JS實(shí)現(xiàn)的雪花飄落動(dòng)畫(huà)效果,涉及javascript數(shù)值運(yùn)算及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05CKEditor擴(kuò)展插件:自動(dòng)排版功能autoformat插件實(shí)現(xiàn)方法詳解
這篇文章主要介紹了CKEditor擴(kuò)展插件:自動(dòng)排版功能autoformat插件實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了CKEditor擴(kuò)展插件實(shí)現(xiàn)自動(dòng)排版功能的autoformat插件具體定義、配置與使用技巧,需要的朋友可以參考下2020-02-02