如何在提交按钮上固定onclick声音持续时间几秒钟

时间:2019-07-09 15:53:49

标签: javascript html

单击“表决”按钮时,我想播放声音并想转移到另一页。可以,但是音乐无法完全播放。只有4秒钟,我该如何延长它。

我尝试了按钮功能中的sleep选项,它可以正常工作,可以保持页面并完全播放声音。与此相反,我不想在不按住页面的情况下播放声音。

JavaScript

<script language="javascript" type="text/javascript">
        window.history.forward();
        var bleep = new Audio();
        bleep.src = "bleep.mp3";        
</script>

HTML

<td align="center" height="50">
    <nav> <a href="#" onclick="bleep.play()"><input type="submit" name="btncandid1" value="VOTE"/></a>
</td>

当单击按钮时,我要播放完整的声音文件,还希望转移到另一页。

2 个答案:

答案 0 :(得分:0)

您要立即重定向页面,然后尝试播放声音。但是您已经离开页面了……

要解决此问题,请先播放音频文件,然后使用javascript的setTimeout()函数等待重定向。

在您的<script>标签中:

var bleep = new Audio();
bleep.src = "bleep.mp3";

function playAudio() {
    // play audio
    bleep.play();
    // wait 5000 milliseconds (5 second), the length of your audio
    setTimeout(window.history.forward(), 5000);
}

在您的HTML中:

<a href="#" onclick="playAudio"><input type="submit" name="btncandid1" value="VOTE"/></a>

答案 1 :(得分:0)

  

我不想在不按住页面的情况下播放声音。

如果您希望声音文件在页面A上开始而在页面B上结束不间断,则根本不可能。在两个页面之间移动会卸载JavaScript,并导致声音停止播放。

唯一可能避免这种情况的方法是使用单页应用程序(或SPA),其中浏览器实际上不会导航到其他URL。假设这是一个较大站点的一部分,则实施SPA可能需要对代码库进行彻底的检查,因此,仅对于声音文件而言,这样做是不值得的。