2011-07-25 76 views
3

在我寫了SVG文件是這樣的:的getElementById SVG文件

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 

<svg width="1280pt" height="650pt" viewBox="0 0 1280 650" id="svg1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><script xlink:href="pathToPolyline.js"/><script><![CDATA[ 

alert(document);//returns [object SVG document] 

//and tried 

var path=document.getElementById('path1');//the problem line 

alert(path); 

]]></script> 
<path id="path1" fill="#000000" d=" M 0.00 0.00 L 1280.00 0.00 L 1280.00 449.99 C 1276.46 444.19 1270.19 441.08 1265.59 436.31 C 1264.17 429.73 1265.36 422.91 1266.42 416.36 C 1267.19 413.43 1264.94 410.65 1262.45 409.42 C 1255.44 405.63 1247.99 402.68 12 ..... 

正如註釋行alert(document);警報[object SVG document]

但是:

var path=document.getElementById('path1'); 
alert(path); 

警報null

我也嘗試把svg放在一個html頁面中,也是在一個xhtml頁面中,嘗試了更多的東西,但現在沒有結果。

有什麼想法?

+0

svg代表預期的視圖,我沒有粘貼這裏的所有文件。 – merveotesi

回答

3

當您撥打var path=document.getElementById('path1');時,path1尚未定義(稍後會介紹)。

你應該把代碼放在路徑定義之後。

但是,我不確定您是否可以將<script>標記放入<svg>之內。

+1

@tuxia:我不想讓你做任何事情,但在堆棧溢出說謝謝接受這個答案的方式:)謝謝。 – pimvdb

+2

@ pimvdb:'