FFIVE
要结合@kingjeffrey和@CMS的建议添加更多建议:您可以使用loop可用的地方,并在不可用时使用kingjeffrey的事件处理程序。有一个很好的理由要使用loop而不编写自己的事件处理程序:正如Mozilla错误报告中所讨论的那样,尽管loop当前在我所知的任何浏览器中都无法无缝循环(没有间隙),但肯定有可能成为未来的标准。您自己的事件处理程序在任何浏览器中都将是无缝的(因为它必须在JavaScript事件循环中循环运行)。因此,最好尽可能使用loop而不是编写自己的事件。正如CMS在对Anurag答案的评论中指出的那样,looploop 变量-如果支持,则为布尔值(false),否则为undefined,与Firefox当前相同。将这些放在一起:myAudio = new Audio('someSound.ogg'); if (typeof myAudio.loop == 'boolean'){ myAudio.loop = true;}else{ myAudio.addEventListener('ended', function() { this.currentTime = 0; this.play(); }, false);}myAudio.play();