用 或 || 來兼容FireFox
看例子:
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
找到 document.body.onclick = function(evt),
在IE下,這個(gè)evt是不會(huì)有的,但是在fireFox下(opera下好像也是)會(huì)默認(rèn)傳這個(gè)參數(shù).在IE下,這個(gè)參數(shù)是 null ,想兼容,就這樣寫.
繼續(xù)向下:
evt = evt || window.event;
在IE下,evt 就會(huì)指向:window.event,在fireFox下,就會(huì)指向那個(gè)默認(rèn)參數(shù).
因?yàn)樵贗E下 evt || window.event 相當(dāng)于: null || window.event,結(jié)果還是window.event
而在fireFox下,就相當(dāng)于 evt || null ,結(jié)果就是evt
向下看:
o.previousSibling.href || o.previousSibling.previousSibling.href
前面一個(gè)表達(dá)式用于IE下,后面一個(gè)用于FireFox下.
FireFox下,沒有preserveWhiteSpace這個(gè)屬性,即:把空白也當(dāng)作一個(gè)節(jié)點(diǎn),而IE則默認(rèn)為false,即把空白不看成一個(gè)節(jié)點(diǎn).
這里說到了XMLDom,似乎和上面所說的不相關(guān),但是在FireFox下 previousSibling就是空白,除非兩個(gè)HTML標(biāo)簽之間沒有任何形式的空格.
<a /></a>
<a href="圖片地址">打開</a>
兩個(gè)<a>之間有換行(屬于空格的一種),所以在FireFox下,取下面一個(gè)<a>的前一個(gè)節(jié)點(diǎn)的話,就必須用:
o.previousSibling.previousSibling.href
可能你還是沒有看明白,沒關(guān)系,再舉個(gè)簡(jiǎn)單的:
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
相關(guān)文章
微信小程序與php 實(shí)現(xiàn)微信支付的簡(jiǎn)單實(shí)例
這篇文章主要介紹了微信小程序與php 實(shí)現(xiàn)微信支付的簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06詳解如何用js實(shí)現(xiàn)一個(gè)網(wǎng)頁(yè)版節(jié)拍器
這篇文章主要為大家介紹了詳解如何用js實(shí)現(xiàn)一個(gè)網(wǎng)頁(yè)版節(jié)拍器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01javascript的setTimeout()使用方法總結(jié)
這篇文章主要給大家分享javascript的setTimeout()使用方法總結(jié),js的setTimeout方法用處比較多,通常用在頁(yè)面刷新了、延遲執(zhí)行了等等,下面我們一起來看看文章對(duì)該內(nèi)容的具體總結(jié)吧,需要的朋友可以參考一下2021-11-11微信小程序之MaterialDesign--input組件詳解
本篇文章主要介紹了微信小程序之MaterialDesign--input組件詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02深入講解JavaScript之繼承的多種方式和優(yōu)缺點(diǎn)
本文講主要解JavaScript各種繼承方式和優(yōu)缺點(diǎn),文章將六種繼承方式說明,分別有原型鏈繼承、借用構(gòu)造函數(shù)(經(jīng)典繼承)、組合繼承、原型式繼承、寄生式繼承、 寄生組合式繼承,這六種方式,需要的朋友可以參考一下2021-10-10