【问题标题】:load event not firing on svg with svgweb使用 svgweb 在 svg 上未触发加载事件
【发布时间】:2012-07-07 19:32:00
【问题描述】:

我尝试在 SVG 之后做一些事情(由 <object> 引用:)

<!--[if !IE]>-->
<object data="file.svg" type="image/svg+xml" id="image-1" width="760" height="730" > <!--<![endif]-->
<!--[if lt IE 9]>
<object src="file.svg" classid="image/svg+xml" width="200" height="200" id="image-1" width="760" height="730"> <![endif]-->
<!--[if gte IE 9]>
<object data="file.svg" type="image/svg+xml" id="image-1" width="760" height="730">  
<![endif]-->
</object>

已加载:

a = document.getElementById("image-1");
a.addEventListener("load",function(){
   //some stuff
},false);

这在支持原生 SVG 的浏览器中运行良好。然而,当 SVG 提供 svgweb 的 flash 支持时,我无法触发加载事件。是我搞砸了什么还是意料之中?

当 Flash 回退准备好时,我可以做些什么来触发事件?我需要它来动态隐藏/显示&lt;path&gt;s。

【问题讨论】:

    标签: flash internet-explorer svg onload event-listener


    【解决方案1】:

    您是否尝试过监听“SVGLoad”事件?

    有关如何使用,请参阅the user manual for SVGWeb。

    【讨论】:

      【解决方案2】:

      我无法让 SVGWeb 加载事件在嵌入了 SVG 文件的不同浏览器中始终如一地触发。我发现这种方法在任何地方都可以使用,并且可以与 jQuery 一起使用:

      在您的 SVG 文件的末尾 &lt;/svg&gt; 标签之前:

      <script type="text/javascript"><![CDATA[
          window.parent.SVGInit();
      ]]></script>
      

      然后在您的 HTML 文件中嵌入 SVG:

      <script>
          function SVGInit() {
              $(document).ready(function(){
                  // SVG is loaded and ready.
              });             
          }
      </script>
      

      【讨论】:

        【解决方案3】:

        您使用的是哪个版本的 svgWeb? 尝试更新到 Lurker Above。以前的版本可能会覆盖 jquery 的负载处理程序。 另外,请尝试使用以下语法:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-23
          • 2019-08-18
          • 2016-10-27
          • 1970-01-01
          • 2023-04-08
          • 2011-10-28
          相关资源
          最近更新 更多