TypeError:'undefined'不是Safari中的函数

时间:2014-02-24 11:55:46

标签: javascript jquery html5 video

我尝试启动视频,但收到错误

TypeError: 'undefined' is not a function (evaluating '$("video")[0].play()')

但一切都在其他浏览器中完美运行

$('a').bind('click', function() {
  $('video')[0].play();
});

<video controls>
  <source id="webm" src="/video.webm" type="video/webm" />
  <source id="mp4" src="/video.mp4" type='video/mp4'/>
</video>

3 个答案:

答案 0 :(得分:3)

我不明白为什么现在还没有正确回答这个问题,但是这里有:

适用于Windows的最新Safari版本非常陈旧(v5最初于2010年发布),并且很可能不支持html5视频,因此$('video')[0]查找的DOM元素没有{{1功能。

答案 1 :(得分:1)

如果您在Windows上使用safari,则必须安装 QuickTime 播放器。没有它,视频将无法播放。

答案 2 :(得分:0)

play不是jQuery函数,而是DOM元素的函数。因此,您需要在DOM元素上调用它。

你可以试试这个:

 $('video').get(0).play();  

如果你想这样做以适应现有的jQuery选择 - 将是$('#videoId').get(0).play()


更新

我认为你也必须使用.preventDefault()方法。根据您的代码,您可以尝试将事件添加到preventDefault()

$('a').bind('click', function(e) {
   e.preventDefault();
   $('video')[0].play();
});