我正在尝试制作一个可以播放视频的网页,并提供一个可以播放的视频列表。我已经让它在 Chrome、Firefox 和 Opera 中运行良好,但当然 IE 8 令人头疼。视频播放器本身是一个原生 HTML 5 视频播放器,带有 Flash Flowplayer 后备(几乎专门用于 IE 8)。它的 HTML 如下所示:
<video controls width="640" height="360">
<source id='mp4src' src="videos/foo.mp4" type="video/mp4">
<source id='webmsrc' src="videos/foo.mp4.webm" type="video/webm">
<a href="videos/foo.mp4" style="display:block;width:425px;height:300px;" id="player">
</a>
</video>
锚标记是 Flowplayer 的一种容器,是根据 Flowplayer 的文档完成的。
现在我编写的 jQuery 应该执行以下操作:
- 获取每个列表项的两个伪属性(每个都包含视频的 URL)并将它们变成变量
- 删除video标签内的两个source标签
- 清空视频标签内的锚标签
- 使用之前创建的变量作为 src 属性创建两个新的源标签
- 将锚标签的href属性改为变量
- 运行 Flowplayer 函数以重新填充锚标签
- 重新加载视频
这是 jQuery 本身
$(document).ready(function(){
$('.playlists11 #playlist li').click(function(){
var url1 = $(this).attr('url1');
var url2 = $(this).attr('url2');
$('.content video #mp4src').remove();
$('.content video #webmsrc').remove();
$('.content video a').empty();
$('.content video').prepend("<source id='webmsrc' src='" + url2 + "' type='video/webm'>");
$('.content video').prepend("<source id='mp4src' src='" + url1 + "' type='video/mp4'>");
$('.content video #player').attr('href',url1);
$f("player", "flowplayer/flowplayer-3.2.16.swf");
$('.content video').load();
});
});
现在这在除了 IE 8 之外的所有浏览器中都像一个魅力!所以有人请告诉我,我的代码有什么问题使它不能仅在 IE 8 中工作?