javascript跨瀏覽器的屬性判斷方法
今天在寫代碼的時(shí)候發(fā)現(xiàn)一個(gè)很容易出錯(cuò)的地方。當(dāng)我們?cè)诼暶髯兞繒r(shí),常常會(huì)因?yàn)椴煌?browser 有不同的 API 定義,然后用以下的寫法來判斷哪一個(gè)屬性,例如:
用||來檢查要用哪一個(gè) attribute。
不過要小心 javascript 的值當(dāng)成條件時(shí)的判斷。
例如:
console.log(sLeft);
這段代碼希望 screenLeft 會(huì)回傳 window.screenLeft ,而在 firefox 會(huì)回傳 window.screenX。
但是如果 screenLeft 剛好等於 0 的時(shí)候,就會(huì)進(jìn)入||之后的條件了,接著就 gg 了。
因此建議在值的判斷還是正統(tǒng)一點(diǎn)用 hasOwnProperty 或 typeof 來判斷會(huì)比較精準(zhǔn)。
if( !window.hasOwnProperty('screenLeft')) sLeft = window.screenX;
相關(guān)文章
clipboard.js無需Flash無需依賴任何JS庫實(shí)現(xiàn)文本復(fù)制與剪切
這篇文章主要實(shí)現(xiàn)了無需Flash無需依賴任何JS庫實(shí)現(xiàn)文本復(fù)制與剪切,是一款極現(xiàn)代的,不需要flash,不依賴任何其他js庫的非常小的插件,叫clipboard.js,感興趣的小伙伴們可以參考一下2015-10-10調(diào)試Javascript代碼(瀏覽器F12及VS中debugger關(guān)鍵字)
目前,常用的瀏覽器IE、Chrome、Firefox都有相應(yīng)的腳本調(diào)試功能下面我就介紹如何在瀏覽器/VS中調(diào)試我們的JS代碼,感興趣的你可不要走開啊,希望本文對(duì)你有所幫助2013-01-01基于bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索功能
這篇文章主要為大家詳細(xì)介紹了基于bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07JS項(xiàng)目中對(duì)本地存儲(chǔ)進(jìn)行二次的封裝的實(shí)現(xiàn)
這篇文章主要介紹了JS項(xiàng)目中對(duì)本地存儲(chǔ)進(jìn)行二次的封裝,這里我們將要使用到的key存儲(chǔ)下來,新建一個(gè)叫constant-storage.js的文件,對(duì)外暴露一些key的鍵名,也方便后期統(tǒng)一修改,這里因?yàn)槎际呛懔?,所以名稱我們都用大寫表示,需要的朋友可以參考下2022-07-07JS實(shí)現(xiàn)自動(dòng)定時(shí)切換的簡潔網(wǎng)頁選項(xiàng)卡效果
這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)定時(shí)切換的簡潔網(wǎng)頁選項(xiàng)卡效果,涉及JavaScript基于時(shí)間函數(shù)定時(shí)觸發(fā)遍歷函數(shù)實(shí)現(xiàn)定時(shí)切換功能,需要的朋友可以參考下2015-10-10如何設(shè)置一定時(shí)間內(nèi)只能發(fā)送一次請(qǐng)求
這篇文章主要介紹了如何設(shè)置一定時(shí)間內(nèi)只能發(fā)送一次請(qǐng)求,需要的朋友可以參考下2014-02-02javascript中的循環(huán)語句for語句深入理解
for循環(huán)是多數(shù)語言都有的。在javascript中,for循環(huán)有幾種不同的使用情況,下面為大家一一介紹下2014-04-04使用JavaScript開發(fā)跨平臺(tái)的桌面應(yīng)用詳解
下面小編就為大家?guī)硪黄褂肑avaScript開發(fā)跨平臺(tái)的桌面應(yīng)用詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07