我目前正致力于将浏览器绘制的 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/