我有一个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'函数。有任何想法吗?我是否必须做一些事情告诉浏览器'init'在'lotsOfCode.js'中?
谢谢 -
的Al
答案 0 :(得分:3)
尝试使用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)" >
答案 1 :(得分:0)
除了Gillys的回答,您是否尝试过将脚本包含在svg行之前?
像这样:
<script type="application/ecmascript" src="lotsOfCode.js">
</script>
<svg id="chart"
xmlns="http://www.w3.org/2000/svg"
onload="init(evt)" >
</svg>
答案 2 :(得分:0)
<?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"
xmlns:xlink="http://www.w3.org/1999/xlink"
onload="init(evt)" >
<script type="text/ecmascript" xlink:href="lotsOfCode.js"></script>
<circle id='BlueCircle' cx='25' cy='25' r='20' style='fill:blue; '/>
</svg>