資源描述:
《javascript瀏覽器兼容性總結(jié)及常用瀏覽器兼容性分析》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、JavaScript瀏覽器兼容性總結(jié)及常用瀏覽器兼容性分析小編日常整理些關(guān)于js兼容性問題,及IE與Firefox等常用瀏覽器的兼容性分析,對js瀏覽器兼容性相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧!1.children與childNodesIE提供的children、childNodes和firefox下的childNodes的行為是有區(qū)別的,firefox下childNodes會把換行和空白字符都算作父節(jié)點(diǎn)的子節(jié)點(diǎn),而IE的childNodes和children不會。比如:It;divid二〃dd〃gt;1t:divgt:yizhuXXlt;/divgt;lt;/divgt;d為dd的
2、div在IE下用childNodes查看,其子節(jié)點(diǎn)數(shù)為1,而ff下為三,我們可以從firefox的dom查看器里面看到他的childNodes為[〃〃,div,〃〃]。要在firefox下模擬children的屬性我們可以這樣做:if(typeof(HTMLElement)!=,,undefined"amp;amp;!window,opera){HTMLE1ement.prototype._defineGetter__(〃children〃,function(){for(vara=口,j=0,n,i=0;ilt;this.childNodes.length;i++){n=
3、this.childNodes[i]:if(n.nodeType==l){a[j++]=n;if(n.name){if(!a[n.name])a[n.name]=口;a[n.name][a[n.name].length]=n;if(n.id)a[n.id]二n;}}returna;});}1.firefox和ie的事件window.event只能在IE下使用,而不能用在Firefox下,這是因?yàn)镕irefox的event只能在事件發(fā)生的現(xiàn)場使用。Firefox必須從源處加入event作參數(shù)傳遞。IE忽略該參數(shù),用window.event來讀取該event。比方說下面這個(gè)在ie下獲
4、得鼠標(biāo)位置的方法:It:buttononclick=〃onClick()〃gt;獲得鼠標(biāo)點(diǎn)擊橫坐標(biāo)It;/buttongt;It:scripttype=zztext/javascript/zgt:functiononclick(){alert(event,clientX);lt;/scriptgt;需要改成It:buttononclick=〃onClick(event)〃gt;獲得0uterHTMLlt:/buttongt:It;scripttype="text/javascript"gt;functiononclick(event){event=event
5、
6、window.ev
7、ent;alert(event.clientX):It;/scriptgt;才能在兩種瀏覽器下使用1.HTML對象獲取問題FireFox獲耳又方式document.getElementById(〃idName〃)ie使用document,idname或者document.getElementByld(〃idName〃)解決辦法:統(tǒng)一使用document.getElementByld(/zidName〃);1.const問題在Firefox下,可以使用const關(guān)鍵字或var關(guān)鍵字來定義常量;IE下,只能使用var關(guān)鍵字來定義常量;解決方法:統(tǒng)一使用var關(guān)鍵字來定義常量。5?fr
8、ame問題以下面的frame為例:It;framesrc=//xxx.html/zid=//frameId//name=//frameName〃/gt;a)訪問frame對象IE:使用window.frameId或者window,frameName來訪問這個(gè)frame對象,frameld和frameName可以同名;Firefox:只能使用window.frameName來訪問這個(gè)frame對象;另外,在IE和Firefox中都可以使用window.document.getElementByld("frameld")來訪問這個(gè)frame對象;b)切換frame內(nèi)容在IE和Fire
9、fox中都可以使用window,document.getE1ementByld(〃testFrame〃).src=〃xxx.html"或window.frameName.location=〃xxx.html〃來切換frame的內(nèi)容;如果需要將frame中的參數(shù)傳回父窗口(注意不是opener,而是parent),可以在frame中使用parent來訪問父窗口。例如:parent.document,forml.filename.value=〃Aqing/z;nbsp;6.body問