首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法访问样式表CORS的cssRules

无法访问样式表CORS的cssRules
EN

Stack Overflow用户
提问于 2022-03-02 17:58:55
回答 2查看 2.1K关注 0票数 0

因此,我一直读到,您不能访问外部样式表的cssRules,因为它会遇到CORS策略问题。

我决定采取一种不同的方法,但我仍然遇到一些问题。

我的方法:

purposes

  • Delete

  • 下载后端的css文件,并将它们上传到S3 Bucket

  • ,返回匹配现有link标记的现有链接和新链接,并添加一个新标记,指向我的CDN
  1. Access document.styleSheets
  2. Tadaaaa (但失败)

我想弄明白的是,如果我的CDN允许任何来源的访问,为什么我仍然会遇到问题呢?

代码语言:javascript
运行
复制
export default () => {
  const payload = [...document.styleSheets].filter(s => s.href).map(s => s.href);

  axios.post('SOME ENDPOINT', { css: payload }).then(({ status, data: { data: newLinks } }) => {
    if (status === 200) {
      for (const i in newLinks) {
        document.querySelector(`link[href="${newLinks[i].source}"]`).remove()
        const stylesheet = document.createElement('link');
        stylesheet.rel = 'stylesheet';
        stylesheet.href = newLinks[i].downloaded;
        document.getElementsByTagName('head')[0].appendChild(stylesheet);
      }
    }
  }).then(() => {
    let delay = 250
    setTimeout(() => {
      console.log('Stylesheets with Removed Links', [...document.styleSheets]);
    }, delay)
  }).then(() => {
    console.log([...document.styleSheets])
  })
}

Safari SecurityError: Not allowed to access cross-origin stylesheet上的错误

我看过这个链接Cannot access cssRules from local css file in Chrome 64

来自Network的结果

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-02 18:24:32

我最终找到了解决办法..。

感谢这个链接Uncaught DOMException: Failed to read the 'cssRules' property的保罗·贝洛

stylesheet.crossOrigin = "anonymous"解决了我的问题,允许我访问cssRules。

https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin

注意,此修复不适用于抛出此错误的现有样式表。

Exception: DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules at CSSStyleSheet.s

此修复只适用于您自己上传的工作表,在我的例子中,也只适用于我的CDN。

票数 1
EN

Stack Overflow用户

发布于 2022-07-29 17:36:57

对于ReactJS

error)

  1. 转到index.html文件中的公共文件夹
  2. ,为css添加crossorigin="anonymous" (e 111,它提供跨源的css)。

示例:

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71327187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档