修改樣式表時在某些瀏覽器(如360)下遇到Cannot read property 'style' of undefined錯誤的解決方案


自己寫的2048游戲,在本地調試一切正常后,上傳至服務器,Chrome效果正常,但發現JavaScript在360瀏覽器中出錯,提示Uncaught TypeError: Cannot read property 'style' of undefined

錯誤定位如下圖


這段代碼是在頁面加載后動態修改CSS樣式表的屬性。

看到這個錯誤,蒙了很久,為何本地和Chrome下是毫無問題的,360卻提示這個錯誤?最后才發現問題所在。

在控制台顯示document.styleSheets[0].cssRules,得到下面的結果


這個樣式表明顯不是原來有的,是瀏覽器強制加載進去的,看樣子是用於廣告屏蔽,但卻影響了我的JS代碼。

據此,在獲取樣式表時,做一個邏輯判斷即可解決,代碼如下:

var ocssRules = document.styleSheets[0].cssRules||document.styleSheets[0].rules;
if(ocssRules.length<=1){
	ocssRules = document.styleSheets[1].cssRules||document.styleSheets[1].rules;
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM