代码之家  ›  专栏  ›  技术社区  ›  Kitson

Dojo和显示内联SVG

  •  1
  • Kitson  · 技术社区  · 14 年前

    我正试图在基于Dojo的应用程序中显示一个动态创建的SVG内联,但遇到了一些困难。

    当我直接导航到SVG时,它在firefox 3.5/3.6和chrome中表现很好,但是当我嵌入它时,验证我是否有权 DOCTYPE 而XML名称空间,火狐和Chrome都只显示SVG中的一堆文本。然后我试图改变我的内容类型,迫使它成为 application/xhtml+xml 但是当被迫进入XHTML有效模式时,火狐和Chrome都拒绝给Dojo访问DOM中工作所需的一切。

    我的文档的开头是:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
      xmlns:svg="http://www.w3.org/2000/svg"
      xmlns:v="urn:schemas-microsoft-com:vml"
      xmlns:xlink="http://www.w3.org/1999/xlink">
    

    我的内联SVG开始为:

    <svg xmlns="http://www.w3.org/2000/svg" width="480" height="1394">
    

    我还尝试通过 <img> 标签,在Chrome中似乎可以正常工作,但火狐3.5/3.6拒绝在 dijit.ContentPane 但是,再次直接导航到文档将显示图片。为此,我使用了:

    <img src="test_svg.php" />
    

    我的独立文档开始于:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg xmlns:svg="http://www.w3.org/2000/svg" 
      xmlns="http://www.w3.org/2000/svg" 
      version="1.0" width="480" height="1394">
    

    我设置了以下标题:

    Content-Type: image/svg+xml
    

    我会用 dojox.gfx 但是我有相当多的服务器端代码来生成SVG,我不会太热衷于将其转换为 多焦.gfx 我很肯定我用SVG做的一些样式在 光纤陀螺 .

    1 回复  |  直到 14 年前
        1
  •  2
  •   Eugene Lazutkin    14 年前

    只是使用 <embed> .

    <embed src="generated.svg" width="500" height="500">
    

    顺便说一句,这种方法甚至在 SVG Primer . 很容易检查它是否适用于您: http://srufaculty.sru.edu/david.dailey/svg/simplescript.html -直接取自SVG底漆。如果你能看到一个四分之一圆,它就工作了。

    当然,通过这种方式,您可以将应用程序与支持SVG的浏览器联系起来。没有IE,没有只支持画布的移动浏览器。