javascript - 访问从 CDN 加载的 CSS 的样式表规则

标签 javascript css svg

我目前正致力于将浏览器绘制的 SVG 转换为 PNG。为此,我将 SVG 数据包装到图像中,将其写入 Canvas ,然后使用其数据 URI 在新窗口中以 PNG 格式打开它。

此外,我需要内联样式信息。为此,我遍历了每个样式表的规则并检查是否在 SVG 中使用了任何规则。如果使用它,我将其内联。我从 this article 学到了这种方法.

这适用于我的本地机器,它不使用 CDN。在我们的生产服务器上,我们使用 Cloudfront 来提供 CSS/图像,但是,CSS 文件实际上并没有加载到 document.styleSheets 中,除了一个带有指向它们在 Cloudfront 上的位置的 href 的占位符。

如何访问这些样式表?如果在 DOM 中使用它们,它们必须存在于浏览器中的某个位置。

谢谢

最佳答案

这早就应该了,但感谢史蒂夫·桑德斯 (Steve Sanders) 为我指明了正确的方向。这是我尝试过的解释。

这种方法没有起作用:我编辑了托管我们 Assets 的 s3 存储桶的 CORS 设置,以便允许跨源 GET 请求,然后尝试进行向 cdn 发出 ajax 请求以获取我需要的 css 文件。我的浏览器提示跨源资源共享,但没有用。

这种方法确实起作用了:因为我无法向我们的 cdn 发出 ajax 请求,而是向我们的网络服务器(同源)发出了 ajax 请求。虽然从您的 Web 服务器获取 Assets 并不理想,但它确实有效。

关于javascript - 访问从 CDN 加载的 CSS 的样式表规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24559339/

相关文章:

svg - html2canvas 不打印 jsPlumb 连接器

javascript - 在本地系统上将 SVG 元素保存为 PNG

javascript - 在 Objective C 中解析 Open Graph 元属性/标签

javascript - 为什么内联源映射?

用于删除除双引号之间的所有空格的 Javascript 正则表达式

javascript - 如何改变 body 等级

javascript - 将 SVG 多边形转换为 svg 而非 Canvas 中的 3d 多边形

javascript - Selenium:在动态加载网页时滚动到页面末尾

CSS:Mac 上的 Safari 不符合我的提交按钮样式

jquery - JQuery slider 问题