【问题标题】:outerHtml returns undefined for SVG elements in IEouterHtml 为 IE 中的 SVG 元素返回 undefined
【发布时间】:2015-04-27 05:45:00
【问题描述】:

这是我的代码

<svg id="a" height="210" width="400">
  <path id="b" d="M150 0 L75 200 L225 200 Z" />
</svg>

我在 b 上触发了鼠标移动事件

   $("#b").hover(function() {
        alert($(this)[0].outerHTML);
    });

这在 chrome 中工作,但在 IE 中不工作我该如何解决这个问题..

请找到 JSFiddle 链接:http://jsfiddle.net/r8v70Lnk/

警告框只会在 chrome 中显示,而在 IE 中不显示..

【问题讨论】:

  • 也许你不需要$(this)[0]
  • “不工作”是什么意思?
  • 确切的路径可以在 chrome 中记录(控制台),但在 IE 中可以记录为未定义的相同示例
  • @Filype 是对的,顺便说一句:$(this)[0].outerHTML === this.outerHTML

标签: javascript jquery internet-explorer svg


【解决方案1】:

不知道这是否适合您,但我通常会这样做:

new XMLSerializer().serializeToString(document.querySelector('#b'))

如果你想再次解析字符串并将节点插入到你的文档中:

new DOMParser().parseFromString(svgString, "image/svg+xml")

【讨论】:

  • Evergreen 浏览器使用 SVG 的 outerHTML 规范,而不是 IE 和公司。不过,这个解决方案效果很好。谢谢!
猜你喜欢
  • 2012-09-17
  • 2017-06-16
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
相关资源
最近更新 更多