object
以下のコードのようなタグ内にロードされたシンプルな SVG があります。Safari では、load
ブラウザを開いた後に初めてページをロードしたときに、イベントが 1 回だけ発生します。それ以外の場合はそうではありません。イベントを使用しload
て GSAP でいくつかのアニメーションを初期化しているため、DOM ノードを選択する前に、SVG が完全に読み込まれるタイミングを知る必要があります。setTimeout
イベントにアタッチする代わりに を使用することで、うまくいくと思われる簡単な回避策がありますが、遅いネットワークobject
では指定された時間内に をロードできないため、少し厄介なようです。このイベントが標準化されていないことは承知していますが、この問題に直面したのは私が初めてではないと思います。どのように解決しますか?
var myElement = document.getElementById('my-element').getElementsByTagName('object')[0];
myElement.addEventListener('load', function () {
var svgDocument = this.contentDocument;
var myNode = svgDocument.getElementById('my-node');
...
}