Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript回调可用于IE,但不能用于Chrome或Firefox_Javascript_Html_Callback - Fatal编程技术网

javascript回调可用于IE,但不能用于Chrome或Firefox

javascript回调可用于IE,但不能用于Chrome或Firefox,javascript,html,callback,Javascript,Html,Callback,我认为这段代码应该播放一个声音,然后显示一个警报框。它与IE9配合使用,但与Chrome和Firefox配合使用时,会播放声音,但不会调用回调-因此没有警报框

我认为这段代码应该播放一个声音,然后显示一个警报框。它与IE9配合使用,但与Chrome和Firefox配合使用时,会播放声音,但不会调用回调-因此没有警报框

<我是一个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>

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);