JavaScript回调适用于IE,但不适用于Chrome或Firefox
我认为这段代码应该播放声音,然后显示一个警告框。它适用于IE9,但与Chrome浏览器& Firefox,声音播放,但回调永远不会被调用 - 所以没有警报框。JavaScript回调适用于IE,但不适用于Chrome或Firefox
我是一个c#,C++程序员新来javascript,我可以使用一些帮助!谢谢。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript">
var playAll= function(){
var audio = document.getElementById('s');
var callback = function(e){
alert("ended");
};
audio.onended = callback;
audio.play();
}
</script>
</head>
<body>
<input name="Button1" type="button" value="Play" onclick="playAll()"/>
<audio ID="s">
<source src="s.mp3" >
<source src="s.ogg" >
</body>
</html>
只是可以肯定,这不是无效的HTML的问题,使用下面的有效版本
<audio ID="s">
<source src="s.mp3" />
<source src="s.ogg" />
</audio>
,然后使用绑定事件的正确方法。
audio.addEventListener("ended", callback, false);
谢谢,就是这样。 – jack 2011-05-17 16:19:03
onended
似乎是专门针对IE9,Chrome和Firefox会触发事件ended
,可以绑定一个函数,像这样:v.addEventListener("ended", function() { alert("ended"); }
记住,HTML5规范仍处于开发阶段,并并非所有的浏览器都以同样的方式实现它。
有一个类似的问题在这里:HTML 5 Video OnEnded Event not Firing
谢谢!该代码适用于IE和Chrome浏览器,但为了使其与Firefox兼容,我必须添加'false'参数:audio.addEventListener(“ended”,function(e){alert(“ended”);},false ); – jack 2011-05-17 16:14:11
哪里是? – wong2 2011-05-17 15:18:07