我确实读过每个stackoverflow线程关于在IE9中通过javascript动态更改视频标记源,包括有用但未商定的帖子在这里和这里,但确实感觉有另一个解决方案.这是我正在尝试做的非常基本的例子:
var video = document.getElementById('video');
//now, use either of the lines of code below to change source dynamically
video.src = "nameOfVideo";
//or use...
video.setAttribute("src", "nameOfVideo");
Run Code Online (Sandbox Code Playgroud)
这两行代码都被Internet Explorer彻底憎恨,特别是因为在使用简单的video.getAttribute进行检查后,src肯定会被更改,即使IE实际上没有做任何事情来切换视频.
是的,有人声称,使用IE,你必须在HTML中列出src,以便在页面加载后更改它们,但我确实在stackoverflow上找到了一个通过简单的JavaScript提出解决方案的线程.(令我失望的是,我再也找不到这样做的话......我到处搜寻,相信我).
尽管如此,如果有人能提供解决方案而不使用将所有视频src放在HTML中,而是使用JavaScript动态设置/创建src,如上所示,我将非常感激.
(或者,如果你可以指向我'缺少'溢出线程的方向,测试该属性是否存在于IE中,然后以某种方式通过javascript设置src,这也将被赞赏).
我正在构建的视频标签在IE9中不起作用.它在Firefox和Chrome中运行正常.
我将mime添加到IIS 7.5服务器Extension = .mp4 Mime Type = video/mp4
我使用此代码使用jQuery创建元素
function fsuccLoadVideo(data) {
var arr = GetNormalizeMetadataClean(data);
var vid = $('<video width=400 height=300 controls poster=' + arr[0]["CntrTestVideoImage"] + '/>');
var loc = window.location.href;
var idx = loc.lastIndexOf('/') + 1;
var mp4loc = loc.substr(0, idx)+ arr[0]["CntrTestVideoMp4Src"];
loc = loc.substr(0, idx)+ arr[0]["CntrTestVideoOggSrc"];
if ((arr[0]["CntrTestVideoMp4Src"] != undefined) && (arr[0]["CntrTestVideoMp4Src"].length > 0)) {
$("<source />", { src: loc, type: 'video/webm; codecs="vp8, vorbis"' }).appendTo(vid);
$("<source />", { src: mp4loc, type: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' }).appendTo(vid);
$("<source …Run Code Online (Sandbox Code Playgroud)