Chrome 64 中 CSS 物件模型存取受到限制
從本地載入的樣式表存取 CSS 規則在 Chrome 64 中出現問題。要了解此問題,請考慮以下程式碼片段:
<code class="html"><head> <link rel='stylesheet' href='myStyle.css'> <script> window.onload = function() { try { alert(document.styleSheets[0]); // works alert(document.styleSheets[0].cssRules); // doesn't even print undefined } catch (e) { alert(e); } // catch and alert the error } </script> </head></code>
從 Chrome 64 開始,即使 document.styleSheets[0] 返回樣式表對象,存取 cssRules 也會導致錯誤。
原因:
這是由於 Chrome 64 中強制執行的樣式表安全規則發生了變化。具體來說,從本地文件存取CSS 物件模型(CSSOM) 違反了跨來源資源共享(CORS)
解決方案:
影響與解決方法:
此變更會影響開發人員從本機檔案系統測試 CSS 功能。使用線上/本機主機檔案或其他瀏覽器等解決方案提供了臨時解決方案。
辯論和開放問題:
儘管是一個安全修復程序,但仍有持續的討論和辯論這個變化。有些人認為,缺乏檢測可訪問性問題的替代方法很不方便。其他人則質疑其在其他瀏覽器中的實作程度。由於 W3C 規範仍在開發中,這個問題將如何演變還有待觀察。
以上是為什麼我無法從本機檔案存取 Chrome 64 中的 CSS 規則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!