github - 如何执行 svg.setAttribute("width", svg.getBBox().width); 在服务器端?
问题描述
我正在尝试在 NodeJS 的帮助下提供 SVG 响应。这个 SVG 有一个小的内联 JavaScript 代码,可以动态计算 SVG 的宽度。当使用浏览器直接调用 API 时,一切正常。但是,当我在 GitHub 的自述文件中使用这些 API(在自述文件中用于服务器 SVG)时,它不允许我运行存储在 SVG 中的内联 JavaScript 代码。
所以当我问这个为什么 content-security-policy 的自定义标头在 github问题上不起作用时,我知道 github 不允许任何内联 JS,我们不能覆盖 Github 的 Content-Security-Policy 来执行存储的 JS在 SVG 中。
所以现在我想在服务器端执行内联 JavaScript 来计算 SVG 宽度并将其嵌入到 SVG 中。但问题是如何svg.setAttribute("width", svg.getBBox().width);
在服务器端执行此操作。因为这些 SVGTemplate Literals
在服务器端。
问题:
有没有办法计算 SVG 的宽度而不在服务器端渲染它?
OR
我是否必须在服务器端创建一个虚拟 DOM 才能在该 DOM 中加载 SVG,然后计算宽度?
OR
有没有办法在没有 JavaScript 的情况下做到这一点?
谁能帮我解决如何在服务器端获取 SVG 的动态宽度?
解决方案
推荐阅读
- python - 如何使用 Selenium 打开链接列表并抓取文本
- web - WebScraping /相同的网站不起作用?
- javascript - 数据集值在未定义值和正确值之间随机变化
- python - 如何使用 Python 将充满 .csv 文件的文件夹转换为 .xlsx 文件?
- python - Python:如何根据标量值检查 csv 文件的一行中的每个值?
- r - 过滤多级字符数据
- python - pip install 错误:需要 Microsoft Visual C++ 14.0 或更高版本(即使已安装)
- r - r 中单样本方差的卡方检验
- docker - 如何指定我的代码应在此容器中查找的 CUDA 库版本?
- flutter - 为什么我在安装应用程序后在 VIVO 手机上出现白屏?