为什么使用jQuery动态创建视频元素在IE9中不起作用

时间:2011-08-24 11:38:07

标签: jquery html internet-explorer html5

我正在尝试使用Jquery

重新创建以下内容
<video width="640" height="264" autoplay>
    <source src="http://video-js.zencoder.com/oceans-clip.mp4" type="video/mp4" />
    <source src="http://video-js.zencoder.com/oceans-clip.webm" type="video/webm" />
    <source src="http://video-js.zencoder.com/oceans-clip.ogv" type="video/ogg" />
</video>

http://jsfiddle.net/4bkpU/2/

我已经提出以下但是在IE9中视频元素是空的,任何人都可以告诉我为什么以及我需要更改以便能够在IE9中动态添加视频?它在Firefox,Chrome和Safari中运行良好。

HTML

<div id="videoHolder">
</div>

JQuery的

var video = $('<video width="640" height="264" autoplay></video>')
            .append('<source src="http://video-js.zencoder.com/oceans-clip.mp4" type="video/mp4" />')
            .append('<source src="http://video-js.zencoder.com/oceans-clip.webm" type="video/webm" />')
            .append('<source src="http://video-js.zencoder.com/oceans-clip.ogv" type="video/ogg" />')
            .appendTo($("#videoHolder"));

更新 - 关闭上面的视频标记并添加新链接

http://jsfiddle.net/8Cevq/

2 个答案:

答案 0 :(得分:14)

尝试以下方法,这有效:

$("#videoHolder").html(
    '<video width="640" height="264" autoplay>' +
        '<source src="http://video-js.zencoder.com/oceans-clip.mp4" type="video/mp4"></source>' +
        '<source src="http://video-js.zencoder.com/oceans-clip.webm" type="video/webm"></source>' +
        '<source src="http://video-js.zencoder.com/oceans-clip.ogv" type="video/ogg"></source>' +
    '</video>');

JSFIDDLE example

我为此付出的努力是:

  • A)使用html方法一次性注入所需的标记
  • B)改变标签(在videosource上)以使用完整结束标签而不是速记/>

顺便说一下,这是一部相当酷的视频。

答案 1 :(得分:5)

IE9在您动态添加<video>元素的内容时不喜欢它,因此您必须一次添加<video>元素及其内容。

注意:IE9似乎没有速记<source ... />的问题,只要你之后不尝试添加它。