音频播放结束后自动跳转网页:原生 JS 监听 ended 事件

需求很具体:一段音频放完,页面自动跳到另一个地址。不用引入任何库,用原生的 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
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容