Firefox 25 没有为音频标签定义 play()
firefox 25 does not have play() defined for audio tags?
我有以下音频标签:
<audio preload>
<source src='/sounds/notify.ogg' type='audio/ogg'>
</audio>
我想通过 js 播放它,所以自然而然地我希望调用 $("audio").play() 来做到这一点(它是页面上唯一的音频标签),但我收到一个错误,指出未定义播放。经过检查,情况确实如此。音频元素没有播放属性。我读到的每个教程或资源都说这就是你需要做的,但是......好吧,我就是做不到。我的FF版本刚刚损坏,还是我以某种方式错过了这些不同文本中未说明的内容?
play()
是一个DOM方法,而不是jQuery方法,这意味着你需要先获取实际的DOM元素,然后才能获取play
属性。要获取实际的 DOM 元素,您可以使用 jQuery get()
方法:
$('audio').get(/*insert element index*/).play();
或者简单地使用数组索引:
$('audio')[/*insert element index*/].play();
为了获得更多选择,您可以执行以下操作:
$('audio').eq(/*insert element index*/).prop('play')();
您甚至可以执行以下操作来播放每个音频元素:
$('audio').each(function () { this.play(); });
正如澳洲航空提到的,play不是jQuery方法,但如果需要,您可以轻松添加它,如下所示:
$.fn.play = function() {
return this.each(function() {
this.play();
});
}
相关文章:
- 用嵌套函数和默认函数定义函数
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 控制台返回var不是't定义,但它是
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- jQuery自定义验证比较多个输入的序列
- 查看JS对象的所有键,甚至是getter定义的键
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- $window.ga在AngularJS事件中未定义
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 未捕获的TypeError无法读取未定义的属性socialsharing
- WebDriverException:tinyMCE未在selenium Web driver java中定义
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 定义完全独立的样式信息
- 如何在选项卡上定义属性'的主窗口对象
- Firefox 25 没有为音频标签定义 play()