我已经完全阅读了关于在IE9中通过javascript动态更改视频标记源的每个stackoverflow线程,包括有用但未商定的帖子here和here,但确实感觉还有其他解决方案。这是我正在尝试做的最基本的例子:
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");
这两行代码都被Internet Explorer彻底憎恨,特别是因为在使用简单的video.getAttribute检查后,src肯定会被更改,即使IE实际上没有做任何事情来切换视频。
是的,有人声称使用IE,你必须在HTML中列出src,以便在页面加载后更改它们,但我确实在stackoverflow上发现了一个通过简单的JavaScript提出解决方案的线程。 (令我失望的是,我再也找不到这样做的话......我到处搜寻,相信我。)
尽管如此,如果有人能提供解决方案而不使用将所有视频src放在HTML中,而是使用JavaScript动态设置/创建src,如上所示,我将非常感激。
(或者,如果你能指出'缺少'溢出线程的方向,测试IE中是否存在属性,然后以某种方式通过javascript设置src,那也将受到赞赏。)
答案 0 :(得分:27)
好消息,我找到了一个真正的解决方案,通过JavaScript切换/更改HTML5视频标签中的视频,而不使用我试图解释的讨厌的黑客!这简直令人难以置信,它只是对IE进行了大量的实验。以下是在IE中最简单形式的代码:
<html>
<body>
<video id='videoPlayer' width="320" height="240" controls="controls">
<source id='mp4Source' src="movie.mp4" type="video/mp4" />
<source id='oggSource' src="movie.ogg" type="video/ogg" />
</video>
<!-- You MUST give your sources tags individual ID's for the solution to work. -->
<script>
var player = document.getElementById('videoPlayer');
var mp4Vid = document.getElementById('mp4Source');
player.pause();
// Now simply set the 'src' property of the mp4Vid variable!!!!
mp4Vid.src = "/pathTo/newVideo.mp4";
player.load();
player.play();
</script>
</body>
</html>
你有它。令人难以置信的简单 - 在IE8和IE9中测试和工作...... 如果您有任何问题,请告诉我。