【问题标题】:In IE9, Imported nodes do not seem to be recognized as SVG Elements在 IE9 中,导入的节点似乎无法识别为 SVG 元素
【发布时间】:2012-03-06 02:48:28
【问题描述】:

我正在使用 importNode() 方法将几个元素添加到现有的 SVG 文档中;一切似乎都很好;可以使用 getElementsByTagName [getElementById() is not working] 获取新添加的元素,但问题是导入的元素没有被识别为 SVGGElements,而是被称为 [object Element]。有什么想法吗?

【问题讨论】:

  • 节点是否在 SVG 命名空间中?
  • @Robert,我在

标签: svg internet-explorer-9


【解决方案1】:

xml 文件中的元素需要定义它们所在的命名空间,否则它们将被解析为未知的 xml 元素。

即使 xml 文件的根是 元素也是如此。为确保元素被解析为正确的 svg 元素,您应该添加 xmlns="http://www.w3.org/2000/svg" 和可能的 xmlns="http://www.w3.org/1999/xlink(如果您在文件中的任何位置使用 xlink 属性)。

另一方面,如果您使用 html5 解析器解析元素,则约束相似但略有不同,因为 xmlns 属性在 html 中无法识别(仅在 xhtml 中)。在这种情况下,您至少需要一个 元素根才能将标记解析为 svg,并且您需要确保标记被检测为 html5(避免任何特定于浏览器的旧式回退模式) .因此,如果您使用 html5 解析器,则不能将 元素作为根。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2016-04-05
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    相关资源
    最近更新 更多