2009-07-08 32 views
2

根據以下post的建議,我將以下代碼添加到.NET客戶端的一個網站中。如果使IE8仿真IE7的頭標籤不起作用,該怎麼辦?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

由於某些原因,網站仍然無法正確顯示菜單。如果我進入IE8菜單並添加Web URL以始終以兼容模式顯示,那麼網站將開始正常工作。我應該如何繼續?

注意:這是一個在2006 - 2007年建成的舊網站。這不是目前發展中的網站。

回答

6

我應該怎麼做?

找出什麼阻止菜單在IE8中工作並對其進行修復。解決問題的根源比治療症狀更好。根本問題是菜單被打破。您打算僅僅通過IE將它顯示爲另一個瀏覽器來掩蓋它。修復根本原因,這種兼容性問題不會成爲問題。

編輯:

無論如何,根據this articleIE=EmulateIE7 meta標籤可能會將頁面作爲標準或怪癖,根據頁面的文檔類型。由於您的文檔類型是過渡性的,因此可能會使用您不打算的模式。我會做的是嘗試該頁面上列出的其他模式:

Quirks*   IE=5   IE 5.5 (Quirks) rendering mode 
IE 7 Standards* IE=7   IE 7 standards rendering mode 
IE 7 Emulation  IE=EmulateIE7 IE 7 standards or Quirks rendering, depending on DOCTYPE 
IE 8 Standards* IE=8   IE 8 standards rendering mode 
IE 8 Emulation  IE=EmulateIE8 IE 8 standards or Quirks rendering, depending on DOCTYPE 
Latest Mode*  IE=edge  Always use the latest standards rendering mode 
+0

謝謝Welbog。這將是理想的情景,也是最耗時的情景。由於網站菜單是在2006年購買的.NET插件完成的,沒有人願意支持它,所以很可能不會發生。我會以任何方式記住它。 – Geo 2009-07-08 11:51:45

+0

@Geo:聽起來像你在2006年被扯掉一樣。 – Welbog 2009-07-08 11:53:47

0

您是否嘗試過在IIS中添加http標頭網站?

X-UA兼容:IE = EmulateIE7

http://blogs.msdn.com/ie/archive/2008/06/10/introducing-ie-emulateie7.aspx列出瞭如何做到這一點的不同版本的IIS的一些鏈接。

但是,就像上面說的Welbog所說的,你應該改用IE8來完成這個工作。引入了該標題是爲了更容易將現有網站遷移到IE8,而不是針對開發中的新網站。

0

你試過IE=7

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

如果Emulation標籤不起作用,那麼很有可能該頁面基於User-Agent字符串發回不同的數據。

當站點位於兼容性列表中時,用戶代理字符串發送「7.0」,但當站點使用META標記時發送「8.0」(因爲請求已在服務器請求IE7時發送模式)。

您可以使用Fiddler(www.fiddler2.com)來解決這一點,或者嘗試將用戶代理選擇器插件(http://www.enhanceie.com/ietoys/uapick.asp

相關問題