javascript回调可用于IE,但不能用于Chrome或Firefox
我认为这段代码应该播放一个声音,然后显示一个警报框。它与IE9配合使用,但与Chrome和Firefox配合使用时,会播放声音,但不会调用回调-因此没有警报框 <我是一个C++程序员,是一个新的JavaScript程序员,我可以使用一些帮助!谢谢javascript回调可用于IE,但不能用于Chrome或Firefox,javascript,html,callback,Javascript,Html,Callback,我认为这段代码应该播放一个声音,然后显示一个警报框。它与IE9配合使用,但与Chrome和Firefox配合使用时,会播放声音,但不会调用回调-因此没有警报框
<!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>
var playAll=函数(){
var audio=document.getElementById('s');
var callback=函数(e){
警报(“结束”);
};
audio.onended=回调;
音频播放();
}
为了确保这不是无效html的问题,请使用以下有效版本
<audio ID="s">
<source src="s.mp3" />
<source src="s.ogg" />
</audio>
onended
似乎是IE9特有的,Chrome和Firefox将触发事件end
,您可以将一个函数绑定成这样:v.addEventListener(“end”,function(){alert(“end”);}
请记住,HTML5规范仍在开发中,并非所有浏览器都以相同的方式实现它
这里有一个类似的问题:谢谢!这段代码可以与IE和Chrome一起使用,但是为了让它与Firefox一起使用,我必须添加'false'参数:audio.addEventListener(“end”,function(e){alert(“end”);},false);
audio.addEventListener( "ended", callback, false);