日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

定義文檔兼容性,讓IE按指定的版本解析我們的頁面

 低調(diào)渲染lh1sll 2017-08-07

 馬上注冊,歡迎加入IT之家社區(qū)大家庭。

您需要 登錄 才可以下載或查看,沒有賬號?注冊

x

作為開發(fā)人員,特別是作為Web的前端開發(fā)人員,最悲催的莫過于要不斷的,不斷的去調(diào)試各種瀏覽器的顯示效果,而這其中最讓人頭痛的莫過于MS下的IE系列瀏覽器,在IE系列中的調(diào)試我們將會發(fā)現(xiàn)沒有一個是好伺候的,于是不得不學(xué)習(xí)各種Hack技術(shù)來滿足各種瀏覽器之間的兼容。在這種痛苦中不斷的掙扎,MS可能也實在是看不下去了,于是在IE8開始,微軟引入了文檔兼容性,而這,終于可以讓前端的開發(fā)人員稍微能夠喘口氣。

文檔兼容性是對 Microsoft Internet Explorer 6 中引入的兼容性模式的擴展,使您可以選擇 Internet Explorer 用于顯示網(wǎng)頁的特定呈現(xiàn)模式。——微軟的官方文檔。

在這里先介紹兩個概念:瀏覽器模式(browser mode)和文檔模式(document mode)。這兩個模式的引入,讓我們在IE瀏覽器上能夠簡單的處理兼容性問題,當然,其實也并不簡單,先看看這兩個概念的定義:

瀏覽器模式(browser mode):于切換IE針對該網(wǎng)頁的默認文檔模式、對不同版本瀏覽器的條件備注解析、發(fā)送給網(wǎng)站服務(wù)器的用戶代理(User-Agent)字符串的值。網(wǎng)站可以根據(jù)瀏覽器返回的不同用戶代理字符串判斷瀏覽器的版本和安裝的功能,這樣就可以向不同的瀏覽器返回不同的頁面內(nèi)容。

默認情況下,IE8的瀏覽器模式為IE8。用戶可以通過單擊地址欄旁邊的兼容性視圖按鈕來手動切換到不同的瀏覽器模式。在IE8中,IE8兼容性視圖會以IE7文檔模式來顯示網(wǎng)頁,同時會向服務(wù)器發(fā)送IE7的用戶代理字符串。

文檔模式(document mode):用于指定IE的頁面排版引擎(Trident)以哪個版本的方式來解析并渲染網(wǎng)頁代碼。切換文檔模式會導(dǎo)致網(wǎng)頁被刷新,但不會更改用戶代理字符串中的版本號,也不會從服務(wù)器重新下載網(wǎng)頁。切換瀏覽器模式的同時,瀏覽器也會自動切換到相應(yīng)的文檔模式。

簡而言之:瀏覽器模式的改變,能夠改變請求中User Agent的值,讓服務(wù)器獲取后,能夠按照UA的值進行對應(yīng)處理(如果服務(wù)器上有這個處理功能)。而文檔模式的改變只反映在本地的瀏覽器解析HTML上,對客戶端顯示會有影響,而對服務(wù)器透明。同時,修改瀏覽器模式會影響文檔模式,反之卻不成立。

使用文檔兼容性的方法比較容易,就是在我們要反饋給客戶端的HTML代碼中的head中添加一個meta元素,用來描述當前的文檔需要使用何種瀏覽器版本來解釋當前文檔,代碼類似下面這樣:

  1. <html>
  2. <head>
  3.   <!-- Mimic Internet Explorer 7 -->
  4.   <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >
  5.   <title>測試模擬IE7瀏覽模式</title>
  6. </head>
  7. <body>
  8.   <!--這里是你網(wǎng)站的內(nèi)容-->
  9. </body>
  10. </html>
復(fù)制代碼

X-UA-compatible在使用中,大小寫不敏感,如果你需要客戶端模擬其他的瀏覽器版本來解析文檔你可以設(shè)置為對應(yīng)的版本即可,通常的設(shè)置有如下幾種:

文檔兼容性設(shè)置 X-UA-compatible
X-UA-Compatible值
說明
IE=5讓瀏覽器使用Quirks mode來顯示,實際上是使用Internet Explorer 7 的 Quirks 模式來顯示內(nèi)容,這個模式和IE5非常相似。
IE=edge這個設(shè)置是讓IE使用當前的最高版本進行文檔的解析,官方文檔指明,edge模式僅適用在測試環(huán)境,不建議在生產(chǎn)環(huán)境中使用
IE=7使用標準IE7來處理
IE=EmulateIE7模擬IE7來處理,遵循 <!DOCTYPE> 指令,如果文檔有當前有一個合法的<!DOCTYPE>,就使用IE7模式,否者使用Quirks模式(Internet Explorer 5 Quirks),對于大部分網(wǎng)站來說,這是首選的兼容性模式
IE=8標準IE8
IE=EmulateIE8模擬IE8,遵循 <!DOCTYPE> 指令,參照IE=EmulateIE7說明
IE=9標準IE9
IE=EmulateIE9模擬IE9,遵循 <!DOCTYPE> 指令,參照IE=EmulateIE7說明
chrome=1強制使用Chrome,需要IE下Chrome插件支持
IE=EmulateIE10模擬IE10
IE=10標準IE10,遵循 <!DOCTYPE> 指令,參照IE=EmulateIE7說明

當然,除了這之外,你還可以設(shè)置其他值,甚至可以是7.5這樣的數(shù)值(個人不建議),IE解釋的時候,會嘗試將數(shù)值轉(zhuǎn)為最接近的版本。chrome這個是使用Chrome插件來處理當前的文檔內(nèi)容,你也可以在HTML中插入下面的代碼,以便在用戶沒有安裝Chrome插件的時候,提醒用戶:

  1. <script src="http://ajax./ajax/libs/chrome-frame/1/CFInstall.min.js"></script>

  2. <!--在需要使用的地方進行Chrome Check-->
  3. <script>CFInstall.check();</script>
復(fù)制代碼

這樣在用戶訪問的時候,如果發(fā)現(xiàn)沒有安裝Chrome插件,就會提示安裝Chrome插件。

到這里,我們基本上已經(jīng)知道怎么使用X-UA-Compatible標頭了,讓我們更進一步!

其實,X-UA-Compatible不僅可以用meta元素放在頁面內(nèi),也可以在服務(wù)器上進行配置,比如在IIS上配置默認的Header,或者在使用.NET中配置web.config文件,讓服務(wù)器端配置上默認的標頭,這樣系統(tǒng)就有默認的標頭來指定全局的文檔模式。因為單個頁面的文檔模式設(shè)置會覆蓋默認的文檔模式,因此,在某個需要特殊的文檔模式展示的頁面可以在進行單獨配置meta元素即可。

在IIS7中的配置X-UA-Compatible標頭如下:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多