IE は代わりに attachEvent をサポートします。
image.attachEvent("onload", function() {
// ...
});
jQueryを使用すると、次のように書くことができます
$(image).load(function() {
// ...
});
イベントに関しては、jQuery を使用できる可能性がある場合は、jQuery を使用することをお勧めします。jQuery を使用すると、ブラウザーの互換性が確保されます。コードはすべての主要なブラウザで動作するので、心配する必要はありません。
また、ロード イベントが IE で発生するようにするには、画像がキャッシュから読み込まれないようにする必要があります。そうしないと、IE はロード イベントを発生させません。
これを行うには、次のように、画像の URL の末尾にダミー変数を追加します。
image.setAttribute( 'src', image.getAttribute('src') + '?v=' + Math.random() );
jQuery ロード メソッドを使用する既知の問題には、次のものがあります。
画像で使用する場合の load イベントの注意事項
開発者が .load() ショートカットを使用して解決しようとする一般的な課題は、画像 (または画像のコレクション) が完全に読み込まれたときに関数を実行することです。これには注意すべき既知の警告がいくつかあります。これらは:
- クロスブラウザで一貫して確実に動作しない
- 画像の src が以前と同じ src に設定されている場合、WebKit で正しく起動しません。
- DOM ツリーを正しくバブルアップしない
- ブラウザのキャッシュに既に存在する画像の起動を停止することができます
詳細については、jQuery のドキュメントを参照してください。