ユーザーがエラーを起こすたびに jQuery を使用してサウンドを再生するページがあります。
ここに私のhtmlの一部があります:
<embed id="beepCache" src="sound/beep.wav" autostart="false" type ="audio/x-wav" width="0" height="0" hidden="hidden" /><!-- Just for caching! -->
ファイルをローカルにキャッシュするためだけに使用するため、すぐに再生されます。これは、サウンドを再生する私の jQuery 関数です。DOM に埋め込み要素を追加したり削除したりするだけです。
function playSound() {
$('body').append('<embed id="beep" width="0" height="0" type ="audio/x-wav" src="sound/beep.wav" autostart="true" hidden="hidden">');
//wait 1 sec than remove the embed element
setTimeout(function() {
$('#beep').remove();
}, 1000);
}
したがって、このコードは IE、FF、および Opera で動作しますが、Chrome で動作するために使用されます。それが機能したとき、beep.wav へのすべての GET 要求がキャッシュ ヒットであることに気付きました。
ただし、現在はステータスを取得しています(キャンセル済み)。Chrome は賢すぎると思い、embed 要素が削除されることに気づき、リソースのリクエストをキャンセルしますが、そうではありません。キャッシュに使用し、決して削除されない埋め込み要素も取得されるためです。 status (canceled) - ページの読み込み時に発生します。
どんなアイデアでも大歓迎です。