首页 > web前端 > css教程 > 为什么我无法从本地文件访问 Chrome 64 中的 CSS 规则?

为什么我无法从本地文件访问 Chrome 64 中的 CSS 规则?

Linda Hamilton
发布: 2024-11-03 06:48:30
原创
884 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板