2010-08-03 65 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方法。