[英]IE Compatibility Mode Bug
以下是我頁面頂部的代碼:
<!DOCTYPE html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8">
<title></title>
...
我正在使用Paul Irish的條件注釋代碼來更容易地檢測和解決IE問題,但是這段代碼似乎本身就是一個問題。 問題是,使用條件注釋代碼強制我的頁面進入IE8兼容模式,盡管我根據MSDN指南明確聲明了ie=edge
。
刪除html
標記周圍的條件注釋代碼可修復故障並讓IE8以標准模式呈現; 但我更願意找到一個解決方案,讓我保留條件代碼並仍然強制IE在標准合規模式下呈現。 請記住,我沒有.htaccess文件可供使用,因為此站點使用的是windows / asp設置。
開頭的空注釋修復了它。
<!--[if IE_NEEDS_THIS]><![endif]-->
<!DOCTYPE HTML>
<!--[if lt IE 9]><html class="lt-ie9"><![endif]-->
<!--[if gt IE 8]><!--><html class="gt-ie8"><!--<![endif]-->
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>--</title>
但是不要在元標記周圍添加條件注釋。 IE10將陷入怪癖。
我發現如果文檔開頭的注釋,那么元標記也可以在注釋中。
無論如何它仍然有效,然后它是有效的HTML5!
<!–[if IE]><![endif]–>
<!DOCTYPE html>
<html lang="de">
<head>
<title></title>
<!–[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><![endif]–>
在這種情況下,像IE8和IE9但不是content="IE=Edge,Chrome"
所以請僅限content="IE-Edge"
最佳答案是死鏈接。
這些Boilerplate問題幫助我:
https://github.com/h5bp/html5-boilerplate/issues/125
https://github.com/h5bp/html5-boilerplate/issues/1187
getsetbro的代碼片段是正確的,但這些鏈接將提供有關原因的更多信息。
你說:
請記住,我沒有.htaccess文件可供使用,因為此站點使用的是windows / asp設置。
我認為這意味着你可以通過將X-UA-Compatible
指定為HTTP響應頭而不是元標記來解決問題。
如果您使用的是經典ASP,則可以在文件頂部使用它並刪除元標記:
(我猜你的意思是基於你的個人資料中缺少ASP.NET相關內容的經典ASP)
Response.AddHeader "X-UA-Compatible", "IE=edge,chrome=1"
這個答案基於我對自己喜歡的太多猜測,所以它可能顯然不起作用。
此外,這個問題可能有所幫助:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.