誰かが助けてくれることを願っています、これは私を怒らせています...
多数 (106!) の MP3 ファイルをプリロードする必要があるイントラネット アプリケーションに取り組んでいます。私はこれらのようにプリロードしています...
for (i=0; i<mp3Files.length; i++) {
soundSpan = document.createElement("span")
soundFileLocation = "http://wss/sites/TDABQ/" + mp3Files[i]
soundSpan.innerHTML="<embed src='" + soundFileLocation + "' hidden='true' autostart='false' loop='false' />"
document.body.appendChild(soundSpan)
}
これは機能しますが、少し時間がかかりますが、読み込みが遅いことは問題ではありません。
問題は、ページの準備ができたことをユーザーに確認できるように、すべてのファイルがいつ読み込まれたかを判断する方法がわからないことです。
問題:
これは Internet Explorer 6 で動作する必要があり (そうです、本当に)、HTML5 / Audio を除外します。
このアプリケーションが保存されているサーバーに何もロードできません (質問しないでください)。これまでのところ、SoundManager を除外しています。アプリケーションと同じサーバー上にある場合は SoundManager を正常に動作させることができますが、別のサーバーから SoundManager をロードしようとすると、Flash > JS (または JS > Flash) のセキュリティ設定で問題が発生します。これらの設定は、クライアント PC では変更できません。
JQuery の Ajax および Get メソッドを使用してみましたが、何らかの理由でクロス ドメインの Ajax 呼び出しを行うことができません。たとえば、次のコードではアラート ボックスが表示されません。
$(document).ready(function() {
$.get({ url: "http://wss/sites/TDABQ/field1.mp3", crossDomain:true, success: function() { alert('yes!') } });
});
したがって、埋め込みタグを使用して事前読み込みを行っています。Embed タグが onLoad または onReadyStateChange イベント ハンドラに応答していないようです。
アイデアが尽きた…
すべてのファイルがいつロードされたかを確認するにはどうすればよいですか???