我有一个几乎完全由脚本组成的svg文件。我想将脚本分离出来,以便可以通过压缩器运行它,但是我找不到解决方法。任何帮助表示感谢。

svg文件如下所示:

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

<svg id="chart"
     xmlns="http://www.w3.org/2000/svg"
     onload="init(evt)" >

<script type="application/ecmascript">
<![CDATA[
...lots of code
//]]>
</script>
</svg>


我所做的是将很多代码提取为lotsOfCode.js,并将svg文件更改为:

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

<svg id="chart"
     xmlns="http://www.w3.org/2000/svg"
     onload="init(evt)" >

<script type="application/ecmascript" src="lotsOfCode.js">
</script>
</svg>


但是,这不起作用。浏览器抱怨无法找到onload的“ init”函数。有任何想法吗?我是否需要做一些事情来告诉浏览器“ inits”在“ lotsOfCode.js”中?

谢谢 -

最佳答案

尝试使用xlink:href代替src

<script type="text/ecmascript" xlink:href="lotsOfCode.js"></script>


编辑:您还需要引用xlink命名空间:

<svg id="chart"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     onload="init(evt)" >

09-25 16:40