2010-08-03 83 views
2

我注意到SVG中没有document.writeSVG 1.1 Javascript参考

目前我在寻找类似的功能。

Unfortunatley我找不到列出所有与SVG DOM相关或支持的功能(例如与文档对象相关的功能)的网站。

你是否知道我可以找到SVG文档的任何在线资源,尤其是与scriptin(类似于JAVADOC)相关的资源。

回答

4

不能使用文件撰写,因为SVG是XML的功能/性能,不标记汤。

如果要导入完整的XML节点,您必须手动完成或使用标准DOM importNode方法。例如,如果您从AJAX中检索XML节点,请首先使用responseXML将响应解析为XML,然后使用document.importNode方法导入它,以便您可以在SVG文档中使用它并将其与一个标准的DOM方法(appendChild或insertBefore)。

+0

你有什么想法我可以先删除所有节点,然后添加我需要的,通过使用importNode? – 2010-08-03 13:45:06

+0

是的。 replaceChild方法!如果你可以读法语(或者即使你不能,只要看例子),你应该阅读http://svground.free.fr/dom.php#clonage 这里是签名: myparentnode.replaceChild (newDomElement,DOMNodeToReplace)。 您可以使用parentNode属性轻松获取父节点。例如, :daddy = document.getElementById('nodeToReplace')。parentNode; – Tangui 2010-08-03 16:43:48

3

svg spec from w3c列出了指定的(但我不知道是否所有的浏览器都实现规范正确)

+0

谢谢你的回答。我发现这个网站时,谷歌搜索,但我找不到与“文件”相关的功能...... – 2010-08-03 13:16:14

2

正如已经提到的XMLHttpRequest是一个选项。

另一个是(非W3C标准)DOMParser接口,除了IE之外的所有浏览器都支持足够好的接口,可用于在脚本中实现类似于document.write的东西。

另一种选择是HTML5方法innerHTML/outerHTML(请注意,旧版浏览器会尝试将字符串解析为HTML4,这将不起作用,并且根据文档mimetype的不同,解析xml的方式也有所不同)。

如果我们继续,有DOM 3 Load & SaveSVG Tiny 1.2中定义的parseXML方法。