我有一个SVG文档,我希望能够在其中包含一个脚本(使用< script>标记).在这个脚本中,我想设置一个函数,当文档加载并可以进行操作时将调用该函数.
如果我用HTML和JQuery做这个,我只需要使用$(document).ready(…).我希望在SVG文档中做同样的事情,但显然我不能以同样的方式使用JQuery.
总之,我正在寻找的是:
test.svg:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <script type="text/ecmascript" xlink:href="myscript.js" /> <!-- Rest of SVG body goes here --> </svg>
myscript.js:
function init(evt) { var svgDocument = evt.target.ownerDocument; var svgRoot = svgDocument.documentElement; // Manipulate SVG DOM here } // --> Somehow attach init() function to onload event of SVG <--
我想尝试在脚本中执行此操作,而不是依赖于SVG定义中的显式onload =“init()”. (我想编写一个可能包含在几个SVG中的脚本,而不需要知道脚本是如何工作的.)
解决方法
这是一个例子
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" onload='init(evt)'> <script type="text/ecmascript"> function init(evt) { var svgDocument = evt.target.ownerDocument; var svgRoot = svgDocument.documentElement; // Do whatever you like on svgRoot to manipulate your SVG DOM } </script> </svg>