Я написал 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].
alert(document);
[object SVG document]
Но:
var path=document.getElementById('path1'); alert(path);
оповещения null.
null
Я также пытался поместить svg на html-страницу, также на xhtml-страницу, попробовал больше, но пока безрезультатно.
Есть идеи?
Просто для дополнения ответа pimvdb:
Вы можете использовать теги скрипта в SVG: http://www.w3.org/TR/SVG11/script.html
Кроме того, вы можете использовать jQuery 1.2.6 с чистыми документами SVG или любую версию jQuery, если вы используете документ HTML со встроенным SVG. В этом случае вы сможете разместить свой скрипт-тег где угодно, а затем использовать метод jquery $ (document) .ready для запуска скриптов после загрузки документа.
Во время вызова var path=document.getElementById('path1');, path1 еще не определено (это произойдет позже).
var path=document.getElementById('path1');
path1
Вы должны поставить код после определения пути.
Однако я не уверен, что вы можете поместить <script> теги в <svg>.
<script>
<svg>