1

ウェブサイトでランダムなサウンドトラックを再生したい..早送り/巻き戻しコントロールなしで..使用しているコードは..

<script type="text/javascript">
var a = Math.random()*2;
a=Math.floor(a);

if(a==1)
{alert(a); document.getElementById('soundtrack').innerHTML="<audio id='background_audio1' loop autoplay><source src='6.ogg' type='audio/ogg'>Your browser does not support the audio element.</audio>";}
if(a==0)
{alert("hello");document.getElementById('soundtrack').innerHTML="<audio id='background_audio1' loop autoplay><source src='5.ogg' type='audio/ogg'>Your browser does not support the audio element.</audio>";}

</script>

<div id="soundtrack">

</div>

しかし、このコードは何も再生していません..(アラートは非常にうまくいっています)どうすればよいですか?

4

2 に答える 2

0

実際には、スクリプトを実行してもdivは初期化されません。オンロードハドラーに配置する必要があります。この例は私のために働きます:

<script type="text/javascript">
function play()
{
    var a = Math.random()*2;
    a=Math.floor(a);

    if(a==1)
    {
        alert(a); 
        document.getElementById('soundtrack').innerHTML="<audio id='background_audio1' loop autoplay><source src='1.mp3' type='audio/ogg'>Your browser does not support the audio element.</audio>";
    }
    if(a==0)
    {
        alert(document.getElementById('soundtrack'))
        document.getElementById('soundtrack').innerHTML="<audio id='background_audio1' loop autoplay><source src='0.mp3' type='audio/ogg'>Your browser does not support the audio element.</audio>";
    }
}
</script>
<body onload="play()">;
<div id="soundtrack">

</div>
</body>
于 2013-01-18T07:51:19.733 に答える
0

これが(1つの理由)、JavaScriptをBODYタグの最後に配置することをお勧めする理由です。ミハイルが言ったように、スクリプトの実行時にDIVタグはまだロードされていません。HTMLページは、入力した順序で処理されます(関数とイベントハンドラーを使用しない場合)。これに対する簡単な修正は、次のようにDIVをページの上部に移動することです。

<html>
<body>
<div id="soundtrack"></div>

<script type="text/javascript">
var a = Math.random()*2;
a=Math.floor(a);

if(a==1)
{alert(a); document.getElementById('soundtrack').innerHTML="<audio id='background_audio1' loop autoplay><source src='6.ogg' type='audio/ogg'>Your browser does not support the audio element.</audio>";}
if(a==0)
{alert("hello");document.getElementById('soundtrack').innerHTML="<audio id='background_audio1' loop autoplay><source src='5.ogg' type='audio/ogg'>Your browser does not support the audio element.</audio>";}

</script>
</body>
</html>
于 2013-01-18T08:05:46.207 に答える