动态插入html5视频元素在Opera中不起作用

时间:2010-12-07 10:34:57

标签: javascript html5 opera

我正在使用JavaScript将视频元素插入到DOM中,但它在Opera(v10.63)中不起作用。元素被插入但视频不会出现/播放。适用于Firefox,Chrome和Safari。我还在运行一些测试,看看我是否可以让它工作,但我只是想知道是否有其他人遇到过这个问题。

另一个可能对其他人有帮助的注意事项似乎只能通过Firefox而不是Opera,Chrome或Safari进行事件委派。这是基于我已经完成的代码测试,所以它可能是错误的,但我无法让它工作。

非常感谢

2 个答案:

答案 0 :(得分:0)

可以在Opera 10.63中使用JavaScript将视频元素添加到DOM中。例如,下面的代码应该可以工作(我在Opera 10.61和Opera 11中测试过它。)

var vid, makevid;
makevid = function(e){
    vid = document.createElement('video');
    vid.src = 'path/to/an/oggtheorafile.ogv';
        vid.setAttribute('autoplay',true);
    document.getElementsByTagName('body')[0].appendChild(vid);
} 
window.addEventListener('load',makevid,false);

但您必须确保使用的是兼容的视频格式。 Opera 10.63支持Ogg / Theora和WebM。如果您使用的是MPEG4 / H.264,视频将无法在Opera中播放。

(已在ED 10.6x中修改视频格式支持。确实支持WebM)

编辑2:请注意,如果您使用JavaScript在DOM中插入视频元素,则还需要使用vid.setAttribute('controls',true);或创建自定义控件来启用控件。

答案 1 :(得分:0)

您可以尝试使用HTML5 Inner Shiv。我知道它更多的是针对IE,但它可能值得一试。