瀏覽器強(qiáng)行以IE7的文檔模式展示我們的網(wǎng)頁
來源:易賢網(wǎng) 閱讀:801 次 日期:2015-02-06 15:44:26
溫馨提示:易賢網(wǎng)小編為您整理了“瀏覽器強(qiáng)行以IE7的文檔模式展示我們的網(wǎng)頁”,方便廣大網(wǎng)友查閱!

有時候由于瀏覽器的問題我們在IE7中開發(fā)的東西需要在IE9中展示

但是會出現(xiàn)兼容性的問題。

那么我們可以同技巧將用戶端的瀏覽器強(qiáng)行以IE7的文檔模式展示我們的網(wǎng)頁

下面是針對iis asp.net程序來說的!

1.在每個需要加的頁面中添加

<head runat="server" id="Head1">

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

<title>

<%= ConfigurationSettings.AppSettings["SystemTitle"]%>

</title>

但是你想頁面一多的情況下 那就蛋疼了。

直接在iss中配置

web.cinfig中也需要配置

<system.webServer>

<httpProtocol>

<customHeaders>

<clear/>

<add name="X-UA-Compatible" value="IE=EmulateIE7"/>

</customHeaders>

</httpProtocol>

</system.webServer>

文件兼容性用于定義讓IE如何編譯你的網(wǎng)頁。此文件解釋文件兼容性,如何指定你網(wǎng)站的文件兼容性模式以及如何判斷一個網(wǎng)頁該使用的文件模式。

前言

為了幫助確保你的網(wǎng)頁在所有未來的IE版本都有一致的外觀,IE8引入了文件兼容性。在IE6中引入一個增設(shè)的兼容性模式,文件兼容性使你能夠在IE呈現(xiàn)你的網(wǎng)頁時選擇特定編譯模式。

新的IE為了確保網(wǎng)頁在未來的版本中都有一支的外觀,IE8引入了文件兼容性。當(dāng)你引入一個增設(shè)的兼容性模式,

此文章說明文件兼容性的必要性,列出現(xiàn)有版本IE能使用的文件兼容性模式并示范如何選擇特定的兼容性模式。

了解文件兼容性的必要性

每個主要版本IE新增的功能都是為了讓瀏覽器更容易使用、增加安全性及更支持業(yè)界標(biāo)準(zhǔn)。以這些作為IE的特色,其中一個風(fēng)險就是舊版本網(wǎng)站無法正確的顯示。

為了將這個風(fēng)險降到最低,IE6允許網(wǎng)頁開發(fā)人員選擇IE編譯和顯示他們網(wǎng)頁的方式。"Quirks mode"為預(yù)設(shè),這會使頁面以舊版本瀏覽器的視點(diǎn)顯示,"Standards mode"(也稱為"strict mode")特點(diǎn)是支持業(yè)界標(biāo)準(zhǔn)最為完善。然而要利用這個增強(qiáng)的支持功能,網(wǎng)頁必須包含恰當(dāng)?shù)?lt;!DOCTYPE>指令。

若一個網(wǎng)頁沒有包含<!DOCTYPE>指令,IE6會將它以quirks mode顯示。若網(wǎng)頁包含有效的<!DOCTYPE>指令但瀏覽器無法辨識,IE6會將它以IE6 standards mode顯示。因?yàn)樯贁?shù)網(wǎng)站已經(jīng)包含<!DOCTYPE>指令,兼容性模式的切換相當(dāng)成功。這使網(wǎng)頁開發(fā)人員能選擇將他們的網(wǎng)頁轉(zhuǎn)移為standards mode的最佳時機(jī)。

隨著時間經(jīng)過,更多網(wǎng)站開始使用standards mode。它們也開始使用IE6的特性和功能來檢測IE。舉例來說,IE6不支持universal selector(即css之全局選擇器 * {}),一些網(wǎng)站便使用它來針對IE做特定的對應(yīng)。

當(dāng) IE7增加了對全域選擇器的支持,那些依賴IE6特點(diǎn)的網(wǎng)站便無法偵測出這個新版本的瀏覽器。因此那些針對IE的特定對應(yīng)無法應(yīng)用于IE7,造成這些網(wǎng)站便無法如他們預(yù)期的顯示。由于<!DOCTYPE>只支持兩種兼容性模式,受到影響的網(wǎng)站擁有者被迫更新他們的網(wǎng)站使其能支持IE7。

IE8 比之前的任何版本瀏覽器都更支持業(yè)界標(biāo)準(zhǔn),因此針對舊版本瀏覽器設(shè)計(jì)的網(wǎng)頁可能無法如預(yù)期般呈現(xiàn)。為了幫助減輕所有問題,IE8引入文件兼容性的概念,使你能選擇你的網(wǎng)頁設(shè)計(jì)要對應(yīng)的特定IE版本。文件兼容性在IE8增加了一些新的模式,這些模式能告訴瀏覽器如何解析和編譯一個網(wǎng)頁。若你的網(wǎng)頁無法在 ie8正確的顯示,你可以更新你的網(wǎng)站使它支持最新的網(wǎng)頁標(biāo)準(zhǔn)(優(yōu)先選項(xiàng))或在你的頁面上新增一個meta元素用于告訴IE8如何依照舊版本瀏覽器編譯你的頁面。

這能讓你選擇將你的網(wǎng)站更新支持IE8新特點(diǎn)的時機(jī)。

認(rèn)識文件兼容性模式

IE8支持幾種文件兼容性模式,它們具有不同的特性并影響內(nèi)容顯示的方式。

Emulate IE8 mode指示IE使用<!DOCTYPE>指令來決定如何編譯內(nèi)容。Standards mode指令會顯示成IE8 Standards mode而quirks mode會顯示成IE5 mode。不同于IE8 mode,Emulate IE8 mode重視<!DOCTYPE>指令。

Emulate IE7 mode指示IE使用<!DOCTYPE>指令來決定如何編譯內(nèi)容。Standards mode指令會顯示成IE7 Standards mode而quirks mode會顯示成IE5 mode。不同于IE7 mode,Emulate IE7 mode重視<!DOCTYPE>指令。對于許多網(wǎng)頁來說這是最推薦的兼容性模式。

IE5 mode 編譯內(nèi)容如同IE7的quirks mode之顯示狀況,和IE5中顯示的非常類似。

IE7 mode編譯內(nèi)容如同IE7的standards mode之顯示狀況,無論網(wǎng)頁是否含有<!DOCTYPE>指令。

IE8 mode提供對業(yè)界標(biāo)準(zhǔn)的最高支持,包含 W3C Cascading Style Sheets Level 2.1 Specification和W3C Selectors API,并有限的支持 W3C Cascading Style Sheets Level 3 Specification (Working Draft)。

Edge mode指示IE以目前可用的最高模式顯示內(nèi)容。當(dāng)使用IE8時其等同于IE8 mode。若(假定)未來放出支持更高兼容性模式的IE,使用Edge mode的頁面會使用該版本能支持的最高模式來顯示內(nèi)容。同樣的那些頁面在使用IE8瀏覽時仍會照常顯示。

由于edge mode使用該IE版本所能支持的最高模式來顯示所瀏覽的網(wǎng)頁內(nèi)容,建議僅使用于測試頁及其他非商用頁面。

指定文件兼容性模式

要為你的網(wǎng)頁指定文件模式,需要在你的網(wǎng)頁中使用meta元素放入X-UA-Compatible http-equiv 標(biāo)頭。以下是指定為Emulate IE7 mode 兼容性之范例。

<html>

<head>

<!-- Mimic Internet Explorer 7 -->

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

<title>My Web Page</title>

</head>

<body>

<p>Content goes here.</p>

</body>

</html>

其內(nèi)容隨著指定的頁面模式而更改,當(dāng)要模擬IE7時,指定IE=EmulateIE7,指定IE=5, IE=7, 或IE=8來選擇其中一種兼容性模式。你也可以指定IE=edge來指示IE8使用它支持的最高模式。

X-UA-compatible標(biāo)頭沒有大小寫之分。然而除了title元素及其他的meta元素之外,它必須出現(xiàn)在網(wǎng)頁header節(jié)其它元素之前的位置,

設(shè)定網(wǎng)站服務(wù)器以指定預(yù)設(shè)兼容性模式

網(wǎng)站管理員可籍著為網(wǎng)站定義一個自訂標(biāo)頭來為他們的網(wǎng)站預(yù)設(shè)一個特定的文件兼容性模式。這個特定的方法取決于你的網(wǎng)站服務(wù)器。舉例來說,下列的 web.config文件使Microsoft Internet Information Services (IIS)能定義一個自訂標(biāo)頭以自動使用IE7 mode來編譯所有網(wǎng)頁。

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<system.webServer>

<httpProtocol>

<customHeaders>

<clear />

<add name="X-UA-Compatible" value="IE=EmulateIE7" />

</customHeaders>

</httpProtocol>

</system.webServer>

</configuration>

若你已于網(wǎng)站服務(wù)器指定了一個預(yù)設(shè)的文件兼容性模式,你可以在個別頁面上指定不同的文件兼容性模式來蓋過它。在網(wǎng)頁中指定的模式優(yōu)先權(quán)高于服務(wù)器中所指定的模式。

請查閱你的網(wǎng)站服務(wù)器關(guān)于指定自訂標(biāo)頭的資訊,或看更多資料:

Implementing the META Switch on Apache

Implementing the META Switch on IIS

判定文件兼容性模式

要判定網(wǎng)頁使用IE8瀏覽時的文件兼容性模式,使用document object(文檔對象)的documentMode功能。例如在IE8的網(wǎng)址列輸入下列程式碼會顯示目前頁面的文件模式。

javascript:alert(document.documentMode);

documentMode功能會回傳一個數(shù)值對應(yīng)目前頁面的文件兼容性模式,舉例來說,若網(wǎng)頁指定為支持IE8模式,documentMode便會回傳值"8"。

在IE6引入的compatMode功能不支持在IE8引入的documentMode功能。目前使用compatMode建立的應(yīng)用程式還能在IE8中作用,但它們必須更新為使用documentMode。

若你希望使用JavaScript判定一個文件的兼容性模式,引入下面范例的這段程式碼可支持舊版本的IE。

engine = null;

if (window.navigator.appName == "Microsoft Internet Explorer")

{

// This is an IE browser. What mode is the engine in?

if (document.documentMode) // IE8

engine = document.documentMode;

else // IE 5-7

{

engine = 5; // Assume quirks mode unless proven otherwise

if (document.compatMode)

{

if (document.compatMode == "CSS1Compat")

engine = 7; // standards mode

}

}

// the engine variable now contains the document compatibility mode.

}

認(rèn)識內(nèi)容屬性值

內(nèi)容屬性值在接收到異于先前敘述的數(shù)值時是具有彈性的。這能使你對于IE如何顯示你的網(wǎng)頁更有操控性。舉例來說,你可以設(shè)定內(nèi)容屬性值為IE=7.5。當(dāng)你這樣做的時候,IE嘗試將這個值轉(zhuǎn)換為version vector并選擇最接近的結(jié)果。在這個例子中,IE會將其設(shè)定為IE7 mode。下面的范例顯示該模式設(shè)定為其他值的狀況。

<meta http-equiv="X-UA-Compatible" content="IE=4"> <!-- IE5 mode -->

<meta http-equiv="X-UA-Compatible" content="IE=7.5"> <!-- IE7 mode -->

<meta http-equiv="X-UA-Compatible" content="IE=100"> <!-- IE8 mode -->

<meta http-equiv="X-UA-Compatible" content="IE=a"> <!-- IE5 mode -->

<!-- This header mimics Internet Explorer 7 and uses

<!DOCTYPE> to determine how to display the Web page -->

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> 注意: 前面的范例顯示單獨(dú)的內(nèi)容值。實(shí)際上IE只會執(zhí)行網(wǎng)頁中第一個X-UA-Compatible標(biāo)頭。

你也可以使用內(nèi)容屬性來指定復(fù)數(shù)的文件兼容性模式,這能幫助確保你的網(wǎng)頁在未來的瀏覽器版本都能一致的顯示。欲設(shè)定復(fù)數(shù)的文件模式,請?jiān)O(shè)定內(nèi)容屬性以判別你想使用的模式。使用分號來分開各個模式。

如果一個特定版本的IE支持所要求的兼容性模式多于一種,將採用列于標(biāo)頭內(nèi)容屬性中最高的可用模式。你可以使用這個特性來排除特定的兼容性模式,雖然并不推薦這樣做。舉例來說,下列標(biāo)頭即會排除IE7 mode。

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

結(jié)論

兼容性對于網(wǎng)頁設(shè)計(jì)師來說是非常重要的顧慮。雖然最好是可以建立一個完全不需依賴任何網(wǎng)頁瀏覽器特性或功能的網(wǎng)站,有時候這是不可能實(shí)現(xiàn)的。文件兼容性模式便能將網(wǎng)頁限制在某個特定版本的IE中。

使用X-UA-Compatible標(biāo)頭來指定你的頁面支持的IE版本。使用document.documentMode判定頁面的兼容性模式。

選擇支持某個特定版本的IE,你可以確保你的頁面在未來的瀏覽器版本中也能有顯示的一致

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:瀏覽器強(qiáng)行以IE7的文檔模式展示我們的網(wǎng)頁
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)