我使用 React 制作了一个用于绘制十六进制网格的小型 SVG 演示。它在 Google Chrome 中运行良好,但 Firefox 似乎具有正确的 DOM,但没有显示元素。我的SVG有什么问题吗?
SVG 适用于 Chrome,但不适用于 Firefox
IT技术
firefox
svg
reactjs
2021-05-12 01:25:17
2个回答
它们不渲染的原因是脚本生成的 SVG 元素具有 XHTML 命名空间(即“ http://www.w3.org/1999/xhtml ”),而它们应该具有 SVG 命名空间(“ http: //www.w3.org/2000/svg ")。
当您在 Chrome 中向 SVG 添加元素时,它默认使用 SVG 命名空间,而 FF 并不“聪明”。
我不知道 ReactJS,所以我不知道是否有解决方法。
如果您使用通用 DOM 方法(例如 document.createElementNS() 等),您可以正确创建它们。
在上面的链接中,Ben Alpert 展示了一种使用危险的SetInnerHTML 将标记直接包含到页面中而无需对元素进行react预处理的方法。
该属性还没有太多文档,但可以在以下页面找到:http : //facebook.github.io/react/docs/jsx-gotchas.html
有关此功能缺少文档的更多详细信息,请参阅以下问题:https : //github.com/facebook/react/issues/413