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のフラッシュサポートで提供されている場合、ロードイベントを発生させることができません。私は何かを台無しにしましたか、それともこれは予想されることですか?

フラッシュフォールバックの準備ができたときにイベントを発生させるにはどうすればよいですか?を動的に非表示/表示するには、これが必要<path>です。

4

3 に答える 3

1

代わりに「SVGLoad」イベントをリッスンしてみましたか?

方法については、 SVGWebのユーザーマニュアルを参照してください。

于 2012-07-09T08:37:13.503 に答える
1

SVGファイルが埋め込まれているさまざまなブラウザでSVGWebロードイベントを一貫して発生させるのに問題がありました。私はこのメソッドがどこでも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に更新してみてください。以前のバージョンは、jqueryのロードハンドラーをオーバーライドする可能性があります。また、次の構文を使用してみてください。

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