使用动画、脚本等将 SVG 字符串插入 *X*HTML 的正确方法
我正在努力处理我的 *X*HTML 应用程序中的命名空间。我必须使用 AJAX 下载 SVG,现在我必须为它们创建 DOM 并将它们插入到命名空间的 XHTML 中。
不同的方式会产生不同的结果。基本上我可以使用任何东西,甚至 jQuery 的 $(svgXmlString)
,但问题是,通常 SVG 中的 在添加到 XHTML 时不会自动运行DOM 与 jQuery。我已经成功地完成了这项工作,但我仍然对 SVG 的
遇到同样的问题。这些无脚本动画将无法启动。
那么,在两个命名空间上操作和创建 DOM 节点的正确方法是什么? DOMParser
?这是标准的一部分吗?我需要它在 iOS WebKit 上工作(DOMParser 就在那里)。
I'm struggling with namespaces in my *X*HTML application. I have to download SVGs with AJAX and now I have to create the DOM for them and insert them into namespaced XHTML.
Various ways produce various results. Basically I can use whatever, even jQuery's $(svgXmlString)
, but the problem is that typically <script>
s inside SVG won't automatically run when added to the XHTML DOM with jQuery. I've managed to make this work, but I still have the same problem with SVG's <animateTransform>
. These no-script animations just won't start.
So, what is the correct way to manipulate and create DOM nodes over two namespaces? The DOMParser
? Is that a part of the standard? I need this to work on iOS WebKit (DOMParser is there).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用 XmlHttpRequest,那么您只需采用/importNode,然后将responseXML 文档插入到(X)HTML 文档中。
参见例如 http://www.carto.net/papers/svg/network_requests/index .shtml。
If you use XmlHttpRequest then you can just adopt/importNode and then insert the responseXML document into the (X)HTML document.
See e.g http://www.carto.net/papers/svg/network_requests/index.shtml.