2013-05-14 42 views
1

我想這對於熟悉IE瀏覽器模式的人來說可能是一個快速而簡單的問題。IE9有時會切換到文檔模式:IE7標準

我們有一個內聯網應用程序窗口,有時候會根據開發工具切換到「文檔模式:IE7標準」(帶瀏覽器模式:IE9) - 實際上相對很少,所以很難確切地說明導致問題。其結果是表單字段全部混亂,CSS/float偏斜,腳本無法正常工作等。一旦出現問題,解決此問題的唯一方法是完全關閉瀏覽器並重新啓動Internet Explorer。

我們終於找到了一位用戶,他們遇到了故障,打開開發工具,並確認文檔模式已將自己設置爲IE7,並將其更改回IE9修復了一切。但是,一旦它已經設置爲IE7,將其默認回IE9的唯一方法是關閉瀏覽器。否則,如果您只關閉窗口而不是整個瀏覽器,則每次打開窗口都會返回到IE7。

我不知道可能是如此間歇性地導致此問題。我認爲這可能與Doctype有關?任何人都可以提供任何建議嗎?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AppScreen.aspx.cs" Inherits="Project.AppScreen" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <link href="~/Styles/AppScreen.css" rel="Stylesheet" type="text/css" /> 
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
    <title>Title</title> 

    <script type="text/javascript"> 
    //A couple other quickie scripts 
    </script> 
</head> 

回答

2

你說你要找出問題的根源,所以這裏有雲:

IE瀏覽器有一個配置設置該指定爲本地Intranet上的站點使用兼容模式。該配置設置默認爲打開。

此設置旨在幫助企業升級其IE版本,但不希望升級其Intranet軟件。

問題當然是許多內聯網不屬於這個類別;您希望IE甚至在您的Intranet上使用其最佳模式。但是該設置必須具有默認的一種或另一種方式,並且Microsoft選擇將其默認爲打開。

因此,您的解決方案是繞過Intranet上的PC並關閉設置。 (有些用戶可能已經將自己關掉了,或者通過他們的安裝設置了這種方式,這可以解釋爲什麼它不會發生在每個人身上)。

或者,你可以把meta標籤,迫使IE瀏覽器使用您的首選方式:

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

這裏,IE=edge告訴IE使用它的最好的方式,而不是把它固定到特定的IE版本。

說實話,將元標記放入代碼是一個好主意,以避免任何隨機用戶可能將IE設置爲錯誤模式的問題。

如果您不想讓它混淆HTML代碼,您還可以指定X-UA-Compatible標誌作爲http標頭。

最後,稍微偏離主題,但值得注意的是,「本地Intranet」的定義還包括在您自己的PC上運行的任何網站。這意味着這個設置通常會捕捉正在使用localhost但不知道設置的新手web開發人員。

1

您可以嘗試在<head>標籤放置這樣的:

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

謝謝,雖然我想知道如果這可能是一個有效的繃帶。如果可能的話,我會更有興趣找到問題的根源並解決問題。 – RJB 2013-05-14 18:04:59

+0

這個答案沒問題,但對於IE10用戶來說並不理想。更好的答案是相同的,但是'content =「IE = edge」'。這將強制任何IE版本使用其最佳可用模式。 – Spudley 2013-05-16 20:33:19

相關問題