第26行第39行的错误:未定义脚本上href的命名空间前缀xlink

时间:2010-08-24 21:40:59

标签: javascript html css xml svg

我在一个svg文件中嵌入一个javascript文件,如下所示:

<svg 
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   version="1.0"
   width="958.69"
   height="592.78998"
   id="svg2275"
   sodipodi:version="0.32"
   inkscape:version="0.46"
   sodipodi:docname="Map of USA with state names.svg"
   sodipodi:docbase="C:\temp\webdesign"
   inkscape:output_extension="org.inkscape.output.svg.inkscape"> 
  <metadata 
     id="metadata2625"> 
    <rdf:RDF> 
      <cc:Work 
         rdf:about=""> 
        <dc:format>image/svg+xml</dc:format> 
        <dc:type 
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 
      </cc:Work> 
    </rdf:RDF> 
  </metadata> 
  <defs 
     id="defs2623"> 
    <inkscape:perspective 
       sodipodi:type="inkscape:persp3d"
       inkscape:vp_x="0 : 296.39499 : 1"
       inkscape:vp_y="0 : 1000 : 0"
       inkscape:vp_z="958.69 : 296.39499 : 1"
       inkscape:persp3d-origin="479.345 : 197.59666 : 1"
       id="perspective364" /> 
  </defs> 
  <script type="text/ecmascript" xlink:href="script.js" />
...
.........
.....
......

我收到了上述错误。有谁知道我的错事是什么?

2 个答案:

答案 0 :(得分:47)

您从未定义过xlink命名空间(就像错误告诉您的那样)

你需要做一些像sodipodi命名空间那样的事情:

xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"

根据W3C,适当的名称空间声明是:

xmlns:xlink="http://www.w3.org/1999/xlink"

将其添加到根元素。

答案 1 :(得分:14)

您需要将xlink前缀与命名空间相关联。尝试将以下内容添加到svg元素:

xmlns:xlink="http://www.w3.org/1999/xlink"