資源描述:
《css和js的瀏覽器兼容問題匯總》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、css和js的瀏覽器兼容問題匯總首先談一下瀏覽器,雖然現(xiàn)在ie依然是瀏覽器市場的老大,大約占有67%的份額,但是由于其各方面的欠缺,用戶開始選擇其他瀏覽器作為自己瀏覽網(wǎng)頁的主要工具,比如firefox、theworld、maxthon、chrome、opera等等,在用戶使用比較多的瀏覽器中,分為2大派系ie內(nèi)核和非ie內(nèi)核,像theworld、maxthon、greenbrower等等都屬于ie內(nèi)核,而firefox、chrome、opera則為非ie內(nèi)核,眾多的瀏覽器使我們的web程序就出現(xiàn)了兼容問題,像ie就有ie6、ie7、ie
2、8之分,同樣的樣式控制和js腳本,在不同的ie版本中也會出現(xiàn)不同的效果,甚至bug,何況在非ie內(nèi)核的firefox、chrome、opera了。從市場份額分析,目前ie依然是瀏覽器市場老大,并會在很長一段時間內(nèi)很難改變,不過我們不能忽略firefox以及其他瀏覽器的快速成長,未來我們沒有辦法估計,很多初級用戶還沒有看到其他非ie內(nèi)核的優(yōu)勢,當(dāng)他們發(fā)現(xiàn)時,我們的在去滿足他們的需求是否已經(jīng)晚了呢,所以我們必須做到多瀏覽器的兼容?,F(xiàn)在市場上大多web開發(fā)著選擇兼容ie7和firefox作為主要兼容對象,這兩款也是目前用戶使用最多的,那好我們
3、就主要講兼容這兩款瀏覽器。眾多的瀏覽器使我們就要面臨多種瀏覽器測試的尷尬,比如ie在一臺機(jī)器上只能安裝一個版本,我們要測試程序在ie3個版本中的顯示效果,就要在安裝3個版本的機(jī)器上分別測試將是一件非常繁瑣的事情,這里推薦一款工具,ietester可以同時測試3個版本的ie程序,非常不錯。至于其他瀏覽器在同一臺機(jī)器上安裝是沒有問題的,所以我們準(zhǔn)備好了測試環(huán)境。Firefox是一款有著豐富插件的瀏覽器,這里我推薦3款web開發(fā)人員必備的開發(fā)工具-Firebug、webdeveloper、ietab。Firebug是Firefox下的一款開發(fā)
4、類插件,現(xiàn)屬于Firefox的五星級強力推薦插件之一。它集HTML查看和編輯、Javascript控制臺、網(wǎng)絡(luò)狀況監(jiān)視器于一體,是開發(fā)JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士軍刀,從各個不同的角度剖析Web頁面內(nèi)部的細(xì)節(jié)層面,給Web開發(fā)者帶來很大的便利。WebDeveloper插件以工具欄的形式對網(wǎng)頁的(X)HTML、腳本、多媒體、CSS、緩存、圖象等多方面的實用工具。使我們能輕易的獲得網(wǎng)頁的更多信息,使我們進(jìn)一步的了解當(dāng)前所瀏覽的網(wǎng)頁。ietab是firefox下一款firefox
5、和ie互相切換的插件,這樣開發(fā)人員可以很輕松的一鍵查看2中主流瀏覽器的兼容效果。以上3款工具具體使用方法到Google、baidu中搜索使用關(guān)鍵字即可。debugBar是在ie中類似firebug的工具,不過功能就差很遠(yuǎn)了,不過這里也推薦一下。Firefox瀏覽器良好支持W3C標(biāo)準(zhǔn),是目前對CSS支持最好的瀏覽器,而ie是出現(xiàn)的比較早,在w3c支持方面做的一直不是很好,所以兩種瀏覽器在很多方面不盡相同。下面總結(jié)一下這兩種瀏覽器的兼容問題:1.集合類對象問題說明:Firefox下,只能使用[]獲取集合類對象;IE下,可以使用()或[]獲取
6、集合類對象。解決方法:統(tǒng)一使用[]獲取集合類對象.2.HTML對象獲取問題FireFox:document.getElementById("idName");ie:document.idname或者document.getElementById("idName").解決辦法:統(tǒng)一使用document.getElementById("idName");3.const問題說明:Firefox下,可以使用const關(guān)鍵字或var關(guān)鍵字來定義常量;IE下,只能使用var關(guān)鍵字來定義常量.解決方法:統(tǒng)一使用var關(guān)鍵字來定義常量.4.window
7、.event問題說明:window.event只能在IE下運行,而不能在Firefox下運行,這是因為Firefox的event只能在事件發(fā)生的現(xiàn)場使用.Firefox必須從源處加入event作參數(shù)傳遞。Ie忽略該參數(shù),用window.event來讀取該event。解決方法:IE&Firefox:Submitted(event)"/>…functionSubmitted(evt){evt=evt?evt:(window.event?window.event:null);}8、ript>5.event.x與event.y問題說明:Firefox下,event對象有pageX,pageY屬性,但是沒有x,y屬性;:IE下,event對象有x,y屬性,但是沒有pageX,pageY屬