【问题标题】:How to embed SVG using SVGweb when jQuery is loaded (ie issue)加载 jQuery 时如何使用 SVGweb 嵌入 SVG(即问题)
【发布时间】:2011-12-23 17:14:12
【问题描述】:

这是我尝试嵌入的 svg:

  <script type="image/svg+xml">
    <svg width="200" height="200"
         style="background-color: #D2B48C; display: block; margin-bottom: 5px;"
         id="embeddedSVG">
      <g id="myGroup" 
         fill="blue" 
         style="font-size: 18px; text-anchor: middle; font-family: serif;">
        <circle id="myCircle"
                cx="100" cy="75" r="50"
                stroke="firebrick"
                stroke-width="3" />
        <text x="100" y="155">Hello World</text>
        <text x="100" y="175">From Embedded SVG!</text>
      </g>
    </svg>
  </script>
  <noscript>
    <h1>Optional fallback content goes here!</h1>
  </noscript>

这在 ie6-8 中可以正常工作,SVGweb 可以:

<OBJECT style="BACKGROUND-COLOR: #d2b48c; DISPLAY: block; MARGIN-BOTTOM: 5px; OVERFLOW: hidden" id=embeddedSVG_flash class=embedssvg name=embeddedSVG_flash codeBase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000 width=200 height=200><PARAM NAME="_cx" VALUE="5291"><PARAM NAME="_cy" VALUE="5291"><PARAM NAME="FlashVars" VALUE=""><PARAM NAME="Movie" VALUE="js/svg.swf"><PARAM NAME="Src" VALUE="js/svg.swf"><PARAM NAME="WMode" VALUE="Window"><PARAM NAME="Play" VALUE="0"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE="LT"><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="Scale" VALUE="NoScale"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE="D2B48C"><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="false">
      <embed src="js/svg.swf" quality="high" bgcolor="#d2b48c" 
width="200" height="200" id="embeddedSVG_flash" name="embeddedSVG_flash" swLiveConnect="true" allowScriptAccess="always" type="application/x-shockwave-flash" FlashVars="uniqueId=embeddedSVG&sourceType=string&clipMode=both&debug=true&svgId=embeddedSVG" pluginspage="http://www.macromedia.com/go/getflashplayer" style="background-color: #d2b48c; display: block; margin-bottom: 5px;overflow: hidden;"
 class="embedssvg"  /></OBJECT><NOSCRIPT></NOSCRIPT>

但是当我添加 jQuery 时:

<script src="js/jquery.js" type="text/javascript"></script>

SVG 不在 ie6-8 中渲染(但它在 chrome、ff、... 中渲染):

<script type="image/svg+xml">
<svg width="200" height="200" style="background-color: #D2B48C; display: block; margin-bottom: 5px;"              id="embeddedSVG">           
<g id="myGroup" fill="blue" style="font-size: 18px; text-anchor: middle; font-family: serif;">                <circle id="myCircle"  cx="100" cy="75" r="50" stroke="firebrick" stroke-width="3" />           
<text x="100" y="155">Hello World</text>             
<text x="100" y="175">From Embedded SVG!</text>           
</g>         
</svg>
</script>

我希望 SVGweb 以相同的方式工作,与是否加载 jQuery 无关。 如何在 SVGweb 中嵌入 SVG,以便在加载 jQuery 时显示在 ie6-8 中?

编辑:

我可能已经找到了解决方案。如果我在 SVGweb 之前引入 jQuery,它将起作用。然而在 SVGweb 手册中它说:

首先,您必须将 svg.js 文件作为 第一个页面上的脚本,在所有其他之前

【问题讨论】:

  • 如果您找到了解决方案,您应该创建一个答案并接受它。

标签: javascript jquery html internet-explorer svg


【解决方案1】:

在 SVGweb 解决问题之前包含 jQuery(正如我在编辑中指出的那样)。

【讨论】:

    【解决方案2】:

    您的解决方案不好,因为 svgWeb 可能会覆盖 jQuery 函数,例如 onload 事件处理程序...尝试将 svgWeb 更新到最新版本并将其作为第一个脚本标记放回您的头节点中。

    @Mathias

    你试过这个语法吗?它对我有用。

    mysvg.load = mysvg.onsvgload = function(){
        //Handler
    }
    

    【讨论】:

    • 这可能是stackoverflow.com/questions/11377473/… 的答案吗?
    • 可能吧,到时候我也会回答的。
    • 我刚刚检查了我使用的 svgweb 版本 - Lurker 2011-02-03,这似乎已经是最新的了。所以这并没有解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2011-12-24
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2021-06-16
    相关资源
    最近更新 更多