Internet Explorer 10:<音频>“播放”事件处理程序仅发生一次
Internet Explorer 10: <audio> "play" Event Handler Occurs Only Once?
这是一个简单的测试(jsFiddle演示):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Audio Test</title>
</head>
<body>
<a href="javascript:document.getElementById('audio_test').play();">Play Audio</a>
<audio id="audio_test" onplay="javascript:console.log('played');" onended="javascript:console.log('ended');">
<source src="http://www.html5tutorial.info/media/vincent.ogg" type="audio/ogg">
<source src="http://www.html5tutorial.info/media/vincent.mp3" type="audio/mpeg">
</audio>
</body>
</html>
使用上面的代码并多次播放音频文件,Internet Explorer 10 只运行一次console.log('played');
。这种行为是Microsoft有意还是我做错了什么?有没有很好的解决方法?
当前规范说,触发play
事件的前提是" paused
是新的假的"
http://www.w3.org/TR/html5/embedded-content-0.html#event-media-play
因此,这可能意味着它仅在第一次触发,并且从暂停状态切换后触发。您可以尝试拨打audioElement.pause()
ended
onended="javascript:this.paused(); console.log('ended');
因此,虽然这似乎可以解决问题,但根据您的需要,它可能不是一个适用的解决方法。在这种情况下,也许您可以使用playing
事件。
相关文章:
- 引导程序崩溃一次只能看到一个
- 在Angular应用程序中每个帖子投票一次
- 谷歌图表在运行应用程序时只能显示一次
- Angular.js指令格式化程序只调用过一次,或者如何告诉ngModel表现得像watchCollection
- 在谷歌应用程序脚本中,如何在满足条件的情况下只发送一次电子邮件
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 您可以在节点.js上一次运行多个应用程序吗?
- iOS cordova应用程序中的文本区域只接受一次输入
- 在单页web应用程序中一次只显示特定的表单
- 页面上有两个jQuery应用程序,一次只能运行一个
- 引导程序警报只起作用一次
- 如何只调用一次事件处理程序,而不是每次单击项目时调用事件处理程序
- 我想单击一个按钮,一次只执行已经制作的程序中的一行代码.(JavaScript)
- Jquery 只为我在第 Asp.net 页上显示的引导程序警报工作一次
- 如何创建只能单击一次的点击处理程序
- Chrome 扩展程序,每分钟刷新一次页面,并在每次刷新时运行 (javascript) 脚本
- Angular 提供程序服务需要 init 函数运行一次
- 我的按钮的 jQuery 事件处理程序只工作一次
- 为什么一个ng应用程序一次工作
- 同一页面上有两个棱角分明的应用程序-一次只能使用一个