Как заставить Internet Explorer 9 использовать стандартный режим документа? Я создал веб-сайт и обнаружил, что IE9 использует специальный режим для отображения страниц веб-сайта. Но я хочу использовать стандартный режим для рендеринга.
Принуждение Internet Explorer 9 к использованию стандартного режима документа
Ответы (9)
<!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
Это заставляет каждую версию IE использовать свой стандартный режим, поэтому IE 9 будет использовать стандартный режим IE 9. (Если вместо этого вы хотите, чтобы более новые версии IE также специально использовали режим стандартов IE 9, вы бы заменили Edge
на 9
. Но трудно понять, зачем вам это нужно.)
Для пояснений см. http://hsivonen.iki.fi/doctype/#ie8 (это выглядит довольно запутанно, но это потому, что IE запутан в своем поведении).
DOCTYPE
перед тегом HTML
.
- person crush; 20.08.2013
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Метатег должен быть первым тегом после тега заголовка, иначе он не будет работать.
В этой теме есть что-то очень важное, что было затронуто, но не объяснено полностью. HTML-подход (добавление метатега в заголовок) стабильно работает только на необработанных HTML-страницах или очень простых серверных страницах. Мой сайт представляет собой очень сложный сайт, управляемый сервером, с мастер-страницами, темами и множеством сторонних элементов управления и т. д. Я обнаружил, что некоторые из этих элементов управления программно добавляли свои собственные теги в окончательный HTML-код, которые передавались в браузера в начале тега заголовка. Это эффективно сделало метатеги HTML бесполезными.
Ну, если вы не можете победить их, присоединяйтесь к ним. Единственное решение, которое сработало для меня, - это сделать то же самое в событии предварительного рендеринга моих мастер-страниц как таковых:
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim MetaTag As HtmlMeta = New HtmlMeta()
MetaTag.Attributes("http-equiv") = "Content-Type"
MetaTag.Attributes("content") = "text/html; charset=utf-8;"
Page.Header.Controls.AddAt(0, MetaTag)
MetaTag = New HtmlMeta()
MetaTag.Attributes("http-equiv") = "X-UA-Compatible"
MetaTag.Attributes("content") = "IE=9,chrome=1"
Page.Header.Controls.AddAt(0, MetaTag)
End Sub
Это VB.NET, но тот же подход будет работать для любой серверной технологии. Пока вы убедитесь, что это последнее, что делается прямо перед отображением страницы.
поместите тип документа в качестве первой строки вашего html-документа
<!DOCTYPE html>
вы можете найти подробное объяснение совместимости документов Internet Explorer здесь: Определение совместимости документов
Чтобы предотвратить режим причуд, определите «тип документа», например:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Чтобы IE отображал страницу в режиме документа IE9:
<meta http-equiv="x-ua-compatible" content="IE=9">
Обратите внимание, что "IE=edge"
заставит IE отображать страницу в самом последнем режиме документа, а не в режиме документа IE9.
Убедитесь, что вы приняли во внимание, что добавление этого тега,
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
может разрешить только совместимость с последними версиями. Все зависит от ваших библиотек
Пробовал альтернативным методом:
Нажмите клавишу F12. Затем справа в раскрывающемся меню выберите Internet Explorer версии 9.
Вот оно, и это сработало для меня.
Убедитесь, что вы используете правильный тип документа.
eg.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
или просто
<!doctype html>
а также прочитайте и поймите, как работают режимы совместимости и панель инструментов разработчика для IE, и установите режимы для IE:
Я столкнулся с проблемой, когда моя главная страница index.jsp содержит строку ниже, но хотя рендеринг в IE был неправильным. Нашел проблему и добавил код во все файлы, которые я включил в index.jsp. Ура! это сработало.
Поэтому вам нужно добавить приведенный ниже код во все файлы, которые вы включаете на страницу, иначе он не будет работать.
<!doctype html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
</head>