2012-12-14 108 views
1

我正在svg上工作。我用我的JavaScript代碼在svg中做了一些形狀。現在我所要做的就是獲得svg的代碼,這是我在繪製某些東西時所做的。我想以字符串的形式獲取該代碼,以便重用,或者如果可以將該代碼放在.svg文件中,它會輸出與我自己使用我的JavaScript代碼所做的相同的代碼。 喜歡我的代碼使這個轉換字符串中的DOM元素

<svg xmlns="http://www.w3.org/2000/svg" 
xmlns:xlink="http://www.w3.org/1999/xlink" 
width="500" height="500" id="one"> 
<g id="container"> 
    <rect id ="rect" x="0" y="0" width="0" height="0" fill="pink" 
      stroke="blue" stroke-width="2" /> 

</g> 

現在我應該怎麼做才能從讓所有的代碼串的形式,我可以打印。

回答

0
//in your javascript: 

function getMyString() {  
    var theStringIWant = document.getElementById("container").innerHTML; 
    d.getElementbyId('theBox').value = theStringIWant 
} 

//and in your HTML: 

<form> 
    <textarea id="theBox" rows="2" cols="60">Here's the string</textarea> 
    <input type="button" value="get the string" onclick="getMyString()" /> 
</form> 
1

要獲得innerHTML相當於在SVG必須先序列化的SVG,它是這樣完成的:

​var svg = document.querySelector("svg"); 
var serializer = new XMLSerializer(); 
var string = serializer.serializeToString(svg);​ 

這裏你可以看到一個例子:

http://jsfiddle.net/rrPwS/