こんにちはJavaScriptで新しいオーディオタグ要素を作成しています。これがコードです。
var audio = document.createElement("audio");
audio.setAttribute("id","myid");
audio.setAttribute("autoplay","autoplay");
document.body.appendChild(audio);
本体に追加する前に、オンエンドのイベントハンドラーを配置したいのですが、次のようなことを試しました。
audio.onended = foo;
ここで、fooは次のようなものです:function foo(){alert( 'Hola')}
そして
audio.setAttribute("onended","foo()");
どちらの場合も機能しませんでした。最初のケースでは、オーディオタグは、追加のイベントハンドラなしで追加されます。 2番目のケースでは、オーディオタグが追加されますが、onendedイベントは属性にありますが、発生しません。
誰かが何か考えを持っていますか?
前もって感謝します。
-z-
試してください:
audio.addEventListener('ended', foo);
これは、イベントリスナーを追加するための正しい標準の方法です。
最初に、使用する前にオーディオ要素にイベントがあるかどうかを確認します。HTMLAudioElement
がオーディオであるとすると、次のようにテストできますaudio.hasOwnProperty('onended')
私のブラウザに基づいて、それはサポートしていません。
私はこの非常に役立つjsfiddleをGoogleから見つけました: http://jsfiddle.net/aarongloege/fzXsT/light/
{Code on /*jsFiddle*/}