需求很具体:一段音频放完,页面自动跳到另一个地址。不用引入任何库,用原生的 audio 元素加它的 ended 事件就够了。
思路
给 <audio> 一个 id,放好要播的音源文件。用 getElementById 拿到这个元素,再通过 addEventListener 注册一个 ended 事件监听。播放结束时浏览器会触发 ended,回调函数里执行跳转 window.location = '目标地址'。示例里目标地址填的是百度首页,换自己的即可。
<audio id="ad" controls>
<source src="yinhu.mp3" type="audio/mpeg">
</audio>
<script>
audio = document.getElementById("ad");
function redirectHandler() {
window.location = 'http://www.baidu.com';
}
audio.addEventListener('ended', redirectHandler, false);
/**function play() {
audio.play();
}**/
</script>
几个注意点
真正要放的业务代码,写在 ended 的回调函数里就行,跳转只是其中一种用法。示例最后那段被注释掉的 play() 是用来演示手动触发播放的,自动播放场景下现代浏览器会有拦截策略,别指望无声自动播。如果页面上有多段音频,用 getElementById 就不够了,改用 getElementsByClassName 或 querySelectorAll 遍历绑定。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















暂无评论内容