首頁 >web前端 >css教學 >為什麼我無法從本機檔案存取 Chrome 64 中的 CSS 規則?

為什麼我無法從本機檔案存取 Chrome 64 中的 CSS 規則?

Linda Hamilton
Linda Hamilton原創
2024-11-03 06:48:30924瀏覽

Why Can't I Access CSS Rules in Chrome 64 from Local Files?

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)

解決方案:

  • 使用本機開發伺服器:這提供了一個放寬CORS 策略的受控環境。
  • 線上或本機上託管檔案:使用 Web 伺服器可以消除 CORS 問題。
  • 使用其他瀏覽器:瀏覽器,例如 Firefox、Edge 和Internet Explorer 允許從本機檔案存取 CSSOM。

影響與解決方法:

此變更會影響開發人員從本機檔案系統測試 CSS 功能。使用線上/本機主機檔案或其他瀏覽器等解決方案提供了臨時解決方案。

辯論和開放問題:

儘管是一個安全修復程序,但仍有持續的討論和辯論這個變化。有些人認為,缺乏檢測可訪問性問題的替代方法很不方便。其他人則質疑其在其他瀏覽器中的實作程度。由於 W3C 規範仍在開發中,這個問題將如何演變還有待觀察。

以上是為什麼我無法從本機檔案存取 Chrome 64 中的 CSS 規則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn