我試過了MSDN文章http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx建議的各種方法,強制IE9使用X-UA兼容標頭模擬以前的版本以便正確顯示。
在我的情況下,測試是在IE9瀏覽器中播放MP4視頻文件,該瀏覽器使用默認的標準模式而不是兼容模式。其他網站說,Internet Explorer只能配置爲播放MP4文件(而不是ogg和webm視頻文件),所以我認爲這將是最安全的文件格式來測試。
我已經測試了使用IE9模擬IE8標準和該頁面的IE7標準視圖的網頁視圖,並且在這兩種情況下,舊標準視圖都適用於播放MP4視頻文件。 IE9兼容模式也播放該網頁。但是我強制IE9回到標準視圖,以便測試一個可以用於播放視頻的代碼,用於那些沒有配置自己的IE9瀏覽器以使用兼容模式的用戶。
前面引用的MSDN文章提出的方法似乎是針對這個問題,但在測試每種方法時,它們都沒有解決IE9瀏覽器播放MP4視頻文件的問題。
我的問題的解決方案,從這個堆棧溢出票傳來: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標準問題(與其他網頁瀏覽器一樣)。它自己的代碼似乎也還輸出下面的X-UA兼容代碼:
<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文件中。
我嘗試了所有的文檔兼容模式,但是這對頁面的問題沒有影響。它實際上只在瀏覽器模式顯式設置爲兼容性視圖時纔有效。 – 2012-07-17 09:57:20
@FlorianPeschka我添加了所有觸發兼容模式的已知因素:它們絕對不容易實現,我不認爲有人會真的想故意使用它們,但它們確實有效。 – Razor 2012-07-17 11:29:15
好的。我希望我可以避免必須調試應用程序,但在這種情況下,我想這是唯一的選擇。謝謝你的努力。 – 2012-07-18 08:26:52