2013-01-18 372 views
0

我想在我的網站隨機播放音軌..沒有任何的前進/後退控制.. 我使用它的代碼..隨機播放音樂

<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> 

但這種代碼是不是在玩任何東西..(警報進行得很好) 我該怎麼做?

回答

0

實際上,當您運行腳本時div未被初始化。你需要把它放在onload哈勒。這個例子對我的作品:

<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> 
0

這是(一個原因)爲什麼它是把你的JavaScript在BODY標籤的最後一個好主意。正如Mikhail所說,腳本運行時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> 
+0

將JS代碼和HTML視圖混合並不是一個好主意。這將是很難理解的代碼。此外,在不同的瀏覽器中沒有任何HTML解析順序的規範,所以您只應依賴onload(或其他事件)。 –