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中文网其他相关文章!