3

私は次のようにHTMLページを書きました:

<div>
    <img src="Natural1.jpg" id="img1" >
 <audio src="sound.mp3" id="audio1" ></audio>
</div>

そして私のjavascriptファイルはこれです:

function init(){
    audio1 = document.getElementById("audio1");
    var img1 = document.getElementById("img1");
    img1.addEventListener("click", imgClick, false);
}
function imgClick(){
    if(audio1.paused){
        audio1.play();
    }
    else{
        audio1.pause();
    }
}
document.addEventListener('DomContentLoaded', init, false);

私はchrome12でそれを実行しました.スクリプトは最初にメソッドを実行しdocument.addEventListenerましたが、initメソッドに入らなかったのはなぜですか? attachEvent代わりにIE8でメソッドを試しaddEventListenerましたが、まだそうではありません。私のコードの何が問題になっていますか?

4

2 に答える 2

8

イベント名のケーシングかもしれません。代わりに次のことを試してください。

document.addEventListener('DOMContentLoaded', init, false);

これは確かにそうです。私は以下をテストしました:

document.addEventListener("DomContentLoaded", function(){ alert('Dom') }, false);
document.addEventListener("DOMContentLoaded", function(){ alert('DOM') }, false);

jsbin では、後者のイベントが単独で発生しました。IE8 ではこのイベントが発生しないため、IE8 ではこのアラートが発生しないことに注意してください。代わりに、IE9 と IE10 で成功を収めることができます。

例: http://jsbin.com/ocidok/edit#javascript,html

のブラウザ サポートは、 Mozilla Developer NetworkDOMContentLoadedでカタログ化されています。現在、このイベントは次のブラウザでのみ利用できます。

ここに画像の説明を入力

于 2012-05-04T03:05:21.283 に答える