Не получается избавиться от Compatibility View? - PullRequest
18 голосов
/ 28 октября 2011

Я использую библиотеку Flot .Кажется, что он отлично работает в IE8 и IE9, но проблема возникает, когда в IE9 Compatibility View - он не отображает никаких графиков.Я подозреваю, что это из-за объекта HTML5 canvas, который он интенсивно использует, но я могу ошибаться.Я попытался сделать следующее:

  • Добавить: <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> к моему тегу HTML <head></head>.Я даже попробовал IE=8 и IE=9, и это тоже не помогло.Мой тег выглядит следующим образом:

    <!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.1EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="X-UA-Compatible" content="IE=8" />
        ...
    </head>
    <body>
    ...
    </body>
    </html>
    
  • Поскольку я все еще видел проблему, я добавил следующее в свой файл Global.asax.cs:

    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown
        Response.Headers.Add("X-UA-Compatible", "IE=Edge");
    }
    

Я все еще сталкиваюсь с проблемой.Ошибка, которую я получаю, такова:

HTML1202: http://intranetdomain/SampleProj/Default.aspx is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
Default.aspx
HTML1113: Document mode restart from IE7 Standards to IE9 Standards 
Default.aspx

Есть ли какой-либо способ перегрузить это?

РЕДАКТИРОВАТЬ: Проверка заголовков моего ответа, добавление этой строки в Global.asax.cs не добавило их в мои заголовки.Интересно, почему.

Заголовки ответа:

Key Value
Response    HTTP/1.1 200 OK
Cache-Control   private
Content-Type    text/html; charset=utf-8
Server  Microsoft-IIS/7.5
X-AspNet-Version    4.0.30319
X-Powered-By    ASP.NET
Date    Thu, 27 Oct 2011 20:39:55 GMT
Content-Length  29088

РЕДАКТИРОВАТЬ 2: Очевидно, Application_End было неправильное событие.Вместо этого при этом элемент вставляется в заголовок:

void Application_BeginRequest(object sender, EventArgs e)
{
    Response.Headers.Add("X-UA-Compatible", "IE=Edge");
}

Но сама проблема все еще сохраняется.

Ответы [ 4 ]

31 голосов
/ 28 октября 2011

Возможно, проблема связана с настройками представления совместимости Internet Explorer.Если вы перейдете в меню «Сервис», а затем в «Параметры представления совместимости», убедитесь, что для параметра «Отображать сайты интрасети в представлении совместимости» установлен флажок , а не .Возможно, вы видите, что IE вынуждает вас к просмотру совместимости на основе того, что ваше имя хоста определяется как находящееся в вашей интрасети.

Обратите внимание, что - в зависимости от вашей версии IE - вам может потребоваться нажать левую Alt клавиша для отображения меню, из которого можно открыть меню «Инструменты».

3 голосов
/ 03 апреля 2012

Вы можете установить параметры совместимости непосредственно в IIS.Если вы нажмете на сайте и откроете заголовки ответа, вы можете добавить X-UA-Compatible со значением IE = X, где X - ваша целевая версия.Вы также можете установить это на уровне сервера.Но имейте в виду, что если у вас есть несколько сайтов на одной коробке, у вас могут возникнуть проблемы с ними.Хотя вы можете подать заявку на уровне сервера, а затем удалить унаследованный конфиг с уровня сайта.

2 голосов
/ 13 февраля 2014

Два года спустя, и два новых выпуска IE, и эта проблема IE8 все еще вызывает проблемы!

Я обнаружил, что для приложения ASP.Net нашей компании добавление "X-UA-Compatible"в файле web.config, на веб-страницах или в их коде ничего не изменилось.

Единственное, что нам помогло, - снятие флажка «Отображать наборы интрасети в представлении совместимости» вручную:

Turn off Display intranet sets in Compatibility View

0 голосов
/ 21 ноября 2011

Странная вещь - если вы удалите runat="server", тег meta сработает и кнопка исчезнет.Но, конечно, не рекомендуется удалять runat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...