自己寫的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; }