0

我尝试在 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 fallback 准备好时,我可以做些什么来触发事件?我需要这个来动态隐藏/显示<path>

4

3 回答 3

1

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

有关如何操作,请参阅SVGWeb的用户手册

于 2012-07-09T08:37:13.503 回答
1

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

</svg>标签之前的 SVG 文件的末尾:

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

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

<script>
    function SVGInit() {
        $(document).ready(function(){
            // SVG is loaded and ready.
        });             
    }
</script>
于 2013-02-12T16:33:58.147 回答
0

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

mysvg.load = mysvg.onsvgload = function(){
    //Handler
}
于 2012-07-23T10:26:56.690 回答