Javascript - onclick,播放声音,等待x秒,加载URL

时间:2012-12-19 20:48:36

标签: javascript html audio onclick

目前,我将图片链接到带有onClick事件的页面,以便在点击时播放声音。

<div style="display:none;">
    <audio id="audio1" src="SOUND.wav" controls preload="auto" autobuffer></audio>
</div>

<script> function EvalSound(soundobj) 
    { var thissound=document.getElementById(soundobj); thissound.play(); } 
</script>

<a href="PAGE.php" onClick="EvalSound('audio1')"><img src="IMAGE.png"></a>

这样可以正常工作,但声音会因页面加载而中断。假设“SOUND.wav”是10秒长,我将如何编辑我的代码,以便在单击图像时,声音播放时会暂停10秒,然后它会加载页面?

感谢您或您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以按如下方式更改代码:

<div style="display:none;">
    <audio id="audio1" src="SOUND.wav" controls preload="auto" autobuffer></audio>
</div>

<script> function EvalSound(soundobj) 
    { var thissound=document.getElementById(soundobj); thissound.play(); 
setTimeout( function() { window.location.href = 'PAGE.php'; }, 1000); } // change 1000 to whatever value you would want to wait in milliseconds.
</script>

<a href="#" onClick="EvalSound('audio1')"><img src="IMAGE.png"></a

&GT;

答案 1 :(得分:1)

与我之前的答案相同,只是我建议您使用音频api来确定声音的持续时间并将其设置为超时。

此外,要更改网址,您可以将其添加为参数。

function EvalSoundAndRedirect(soundobj, url) {
    var thissound = document.getElementById(soundobj);
    thissound.play();
    setTimeout(function() {
        window.location.href = url;
    }, thissound.duration);
} 

使用:

<a href="#" onClick="EvalSoundAndRedirect('audio1', 'PAGE.php')"><img src="IMAGE.png" /></a>