Кажется, не может избавиться от просмотра совместимости?
Я использую Flot графическую библиотеку. Кажется, что он отлично работает в IE8 и IE9, но проблема возникает, когда в представлении совместимости IE9 - он не отображает ни один из графиков. Я подозреваю, что это из-за объекта 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
Есть ли вообще все это?
EDIT: Проверка заголовков ответов, добавив, что строка в 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
EDIT 2: По-видимому, Application_End
было неправильным событием. Вместо этого это ввело элемент в заголовок:
void Application_BeginRequest(object sender, EventArgs e)
{
Response.Headers.Add("X-UA-Compatible", "IE=Edge");
}
Но сама проблема по-прежнему сохраняется.
Ответы
Ответ 1
Проблема может быть связана с настройками просмотра совместимости Internet Explorer. Если вы перейдете в меню "Инструменты", а затем в "Параметры просмотра совместимости", убедитесь, что "Показывать сайты интрасети в режиме совместимости" не проверяется. Вы можете видеть, что IE заставляет вас просматривать совместимость на основе вашего имени хоста, находящегося в вашей интрасети.
Обратите внимание, что - в зависимости от вашей версии IE - вам может понадобиться нажать левую клавишу Alt для отображения строки меню, откуда открывается меню "Инструменты".
Ответ 2
Вы можете установить параметры совместимости непосредственно в IIS. Если вы нажмете на сайт и откройте заголовки ответов, вы можете добавить X-UA-Compatible со значением IE = X, где X - ваша целевая версия. Вы также можете установить это на уровне сервера. Но имейте в виду, если у вас несколько сайтов в одном окне, у вас могут возникнуть проблемы с ними. Вместо этого вы можете применить на уровне сервера, а затем удалить унаследованную конфигурацию с уровня сайта.
Ответ 3
Два года и два новых выпуска IE позже, и эта проблема IE8 все еще вызывает проблемы!
Я обнаружил, что для приложения ASP.Net нашей компании добавление "X-UA-Compatible" в web.config, на веб-страницах или их код позади, не имело никакого значения.
Единственное, что сработало для нас, - это вручную отключить флажок "Показывать интрасети в представлении совместимости":
![Turn off Display intranet sets in Compatibility View]()
Ответ 4
Странно: если вы удалите runat="server"
, тег meta
будет работать, и кнопка исчезнет. BNut, конечно, не рекомендуется удалять runat
.