程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> [轉載]強制不使用“兼容性視圖”的HTML代碼,兼容性視圖

[轉載]強制不使用“兼容性視圖”的HTML代碼,兼容性視圖

編輯:關於.NET

[轉載]強制不使用“兼容性視圖”的HTML代碼,兼容性視圖


在IE8浏覽器以後版本,都有一個“兼容性視圖”,讓不少新技術無法使用。那麼如何禁止浏覽器自動選擇“兼容性視圖”,強制IE以最高級別的可用模式顯示內容呢?下面就介紹一段HTML代碼。

X-UA-Compatible是一個設置IE浏覽器兼容模式的屬性,在IE8浏覽器之後誕生。IE8或者IE9有很多種模式,比如,IE8有4種模式:IE5.5怪異模式、IE7標准模式、IE8幾乎標准模式、IE8標准模式;而IE9有7種模式: IE5.5怪異模式、IE7標准模式、IE8幾乎標准模式、IE8標准模式、IE9幾乎標准模式、IE9標准模式、XML模式。

在想要開啟標准渲染模式的頁面,我們常使用代碼:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

來開啟IE8的標准渲染模式。這種方式在只存在IE8浏覽器的時候比較合適,但是後來又出現了IE9、IE10、IE11等等。我們就可以這樣寫:

<meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;IE=7;" />

意思就是優先最前面的IE9,沒IE9就用IE8。那麼如果針對每一種都寫一遍,似乎就有些冗余了。所以我們改變方式采用代碼:

<meta http-equiv="X-UA-Compatible" content="edge" />

Edge模式通知IE以最高級別的可用模式顯示內容,這實際上破壞了“鎖定”模式。

當然,我們還見過這樣的代碼:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

就是增加了chrome=1值,目的是觸發Google Chrome Frame,不過現在Google已經拋棄Google Chrome Frame了,因此也不用這樣寫了。

總結:

1)在目標頁面的<head></head>標簽,使用代碼: <meta http-equiv="X-UA-Compatible" content="edge" /> 觸發標准模式,這個是最有效的方法。這樣設置後IE中設置兼容模式的按鈕也會消失,可以按F12打開“開發人員工具”來檢查浏覽器模式。

2)當然你也可以在服務端代碼C#/VB.NET進行設置,以VB.NET為例:

Public Shared Sub SetHeadCompatible(ByRef myPage As Page)
        Dim li As Literal = New Literal()
        li.Text = "<meta http-equiv='X-UA-Compatible' content='edge' />"
        myPage.Header.Controls.AddAt(0, li)
End Sub

3)上面所說的設置僅是在指定的頁面中,沒有設置的頁面是不會有效果的。那如果想所有頁面都有效果,總不能每個頁面都去設置吧,此時可以在web Config中設置:

<system.webServer>
    <!-- Edge模式通知IE以最高級別的可用模式顯示內容 -->
      <httpProtocol>
        <customHeaders>
          <clear/>
          <add name="X-UA-Compatible" value="IE=edge" />
        </customHeaders>
      </httpProtocol>
</system.webServer>

原文出處

作者:icech

鏈接:http://www.weste.net/2013/8-9/93109.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved