我正在使用 MediaElement.js 作为正在开发的网站的 HTML5 视频播放器。即使使用后备播放器,它在 Chrome、Safari 和 Firefox 中也能正常工作,但在 Internet Explorer 中,我收到此处显示的 Javascript 错误:http://d.pr/Jsfo 。它似乎没有加载我的海报或我的播放器样式(在其他浏览器中工作正常)。
播放器的代码是动态加载的,因为它出现在灯箱中,并且页面上可以播放多个视频。注入(inject) HTML 的 Javascript 位于页面底部
您可以在http://mindsmack.ryangiglio.com查看实时开发站点
最佳答案
不幸的是,您无法在 IE 中动态插入 HTML5 标记,因为这会破坏它们的嵌套
<video>
<source src="file.mp4">
<source src="file.webm">
</video>
变成
<video />
<source src="file.mp4">
<source src="file.webm">
然后 MediaElement.js 无法确定源文件在哪里。
我的建议是输入 <video>
标记在页面上的永久位置,然后准备一个 MediaElement 对象
var player = new MediaElementPlayer('#video');
然后当您准备好播放视频时,只需调用它即可
// single MP4
player.setSrc('newfile.mp4');
// OR multiple
player.setSrc([{src:'newfile.mp4',type:'video/mp3'},{src:'newfile.webm',type:'video/webm'}]);
// load and play
player.load();
player.play();
此外,您应该删除 <object>
将 HTML 嵌入 <video>
标记,因为这只适用于 IE 用户未启用 JavaScript 而您的应用需要 JavaScript 的情况。
关于javascript - IE 中 Mediaelement.js javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852504/