我已经尝试了 MSDN 文章 http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx 建议的各种方法,这些方法涉及强制 IE9 使用 X-UA-Compatible 标头模拟以前的版本以便正确显示。
在我的例子中,测试是在使用默认标准模式而不是兼容模式的 IE9 浏览器中播放 MP4 视频文件。其他网站说 Internet Explorer 仅配置为播放 MP4 文件(而不是 ogg 和 webm 视频文件),所以我认为这是最安全的文件格式进行测试。
我使用 IE9 模拟 IE8 标准和该页面的 IE7 标准视图测试了网页视图,在这两种情况下,旧标准视图都可以播放 MP4 视频文件。并且IE9兼容模式也播放了那个网页。但是我强迫 IE9 恢复到标准视图,以便测试一个代码,该代码可以为那些没有将自己的 IE9 浏览器配置为使用兼容模式的人播放视频。
前面提到的那篇 MSDN 文章建议的方法似乎是针对这个问题的,但是在测试这些方法中的每一个时,它们都没有解决 IE9 浏览器播放 MP4 视频文件的问题。
我的问题的解决方案来自这张 Stack Overflow 票:HTML5 Video not working only in IE9
我实际上必须在网站上的 .htaccess 文件中添加以下几行:
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/mp4 .mov
AddType video/webm .webm
然后,我还需要确保第一行代码使用了这个:
<!DOCTYPE html>
... 而不是这个:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
我不需要使用任何“以前的版本”代码,例如:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
在我的测试页面上,我还使用了video-js 代码,我认为它可以解决 IE9 标准问题(就像其他 Web 浏览器一样)。它自己的代码似乎也输出了以下 X-UA-Compatible 代码:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
但是,仅这些代码并不能解决问题。归根结底,我相信这是由于在 .htaccess 文件中添加了代码。