Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getElementById in SVG document

I wrote a svg file like this:

<?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 .....

As in the comment line alert(document); alerts [object SVG document].

But:

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

alerts null.

I also tried to put svg in an html page, also in an xhtml page, tried more thing but no result for now.

Any idea?

like image 720
merveotesi Avatar asked Jul 25 '11 14:07

merveotesi


1 Answers

At the time you call var path=document.getElementById('path1');, the path1 is not defined yet (it comes later on).

You ought to put the code after the path definition.

However I'm not sure if you can put <script> tags inside a <svg>.

like image 171
pimvdb Avatar answered Sep 28 '22 02:09

pimvdb