gpt4 book ai didi

xml - Internet Explorer XML/SVG 自定义命名空间 - 生成额外/错误的命名空间

转载 作者:数据小太阳 更新时间:2023-10-29 02:10:51 28 4
gpt4 key购买 nike

我正在尝试在网页内呈现 SVG 文档,然后通过 JavaScript 捕获该 SVG 文档的标记。然后将此 SVG 标记发送回服务器进行处理。

我的 SVG 文档的根目录类似于以下内容:

<svg id="layout" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:foobar="http://www.foobar.com" foobar:attribute="123abc">

这在 Webkit 和 Firefox 中工作得很好,但 Internet Explorer(像往常一样)会导致问题。当 SVG 在 IE 中呈现时,它看起来很好,但是当我通过 JavaScript/jQuery (XMLSerializer) 获取它的标记时,SVG 字符串根节点现在看起来像这样:

<svg xmlns="http://www.w3.org/2000/svg" id="layout" xmlns:NS1="" NS1:foobar:attribute="123abc" xmlns:NS2="" NS2:xmlns:foobar="http://www.foobar.com">

SVG 可以正确显示,但是,如您所见,当 XML 被序列化时,命名空间被弄乱了(并且属性已经重新排列,但这并不是真正的问题)。这些困惑的命名空间破坏了处理提交的 SVG 字符串的服务器端代码。任何人都可以阐明正在发生的事情吗?

我已经用谷歌搜索了一个下午,但似乎想不出很多东西。我见过的所有示例都是关于人们尝试通过 JavaScript/jQuery 添加 namespace 并获得与我所看到的相似的结果( namespace 方面)。

希望 MSDN 上有人知道发生了什么,我也打开了 a thread there .

编辑:添加了一些细节

编辑 2:添加了指向 MSDN 线程的链接

最佳答案

我几乎建议在使用 SVG 时避免使用 JQuery。您总是会遇到命名空间问题。

相反,尝试类似的东西

(new XMLSerializer()).serializeToString(document.querySelector("svg"))

关于xml - Internet Explorer XML/SVG 自定义命名空间 - 生成额外/错误的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21539423/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com