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

Tom*_*Tom 11 html jquery html5 internet-explorer

我试图用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>
Run Code Online (Sandbox Code Playgroud)

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

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

HTML

<div id="videoHolder">
</div>
Run Code Online (Sandbox Code Playgroud)

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"));
Run Code Online (Sandbox Code Playgroud)

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

http://jsfiddle.net/8Cevq/

Gra*_*mas 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>');
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE示例.

我做的工作是:

  • A)使用该html方法一次性注入所需的标记
  • B)改变的TAG(两个videosource)使用完全关闭的标签,而不是速记/>

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


thi*_*ery 5

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

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