У меня есть страница, которая будет включена в iframe на странице, где они используют следующее:

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

И в идеале я хотел бы отображать свою страницу в режиме последних стандартов, доступном для браузера, который использует пользователь. Это возможно?

Я пробовал включать

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

На моей странице, а также изменение моего веб-приложения для включения HTTP-заголовка «X-UA-Compatible» со значением «IE = edge», но я не могу заставить его делать то, что я хочу.

Странно то, что если, например, у меня есть две страницы, первая содержит iframe, а другая - то, что отображается в iframe, например:

<!doctype html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
    <script>
        console.log("Page document mode: "+document.documentMode);
    </script> 
</head>  
<body>
<iframe src="iframepage.html" /> 
</body>
</html>

А также

<!doctype html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <script>
        console.log("Iframe document mode: "+document.documentMode);
    </script> 
</head>
<body>
</body>
</html>

Результат довольно неожиданный

Page document mode: 7
Iframe document mode: 8

Откуда взялся режим документа 8? И как мне сделать документ iframe в 9 или выше ??

Буду бесконечно благодарен, если кто-нибудь укажет мне верное направление !! спасибо ник

28
eldoctoro 28 Сен 2012 в 18:00
1
У меня точно такая же проблема. Вы нашли решение ?
 – 
Pierre Henry
17 Янв 2013 в 15:02
К сожалению, боюсь, что нет
 – 
eldoctoro
31 Янв 2013 в 01:32
Просто догадки, но есть пара вещей, которые стоит попробовать: 1) установить IE = 9, а не край, и / или 2) использовать заголовок HTTP, совместимый с X-UA, а не метатег.
 – 
Nathan Stretch
18 Фев 2013 в 03:20

1 ответ

Лучший ответ

IE не позволяет смешивать IE9 + и более старые режимы в иерархии кадров. Если ваш верхний документ - IE7, максимальное значение, которое вы можете получить в любом внутреннем документе, - IE8. Точно так же вы не сможете размещать что-либо, кроме документов режима IE9, на странице режима IE9.

22
Daniel S. 22 Фев 2013 в 13:13
2
Однако, похоже, можно смешивать режимы и наоборот: главная страница в стандартном режиме, фрейм в режиме совместимости: stackoverflow.com / q / 18976213/1768303
 – 
noseratio - open to work
30 Сен 2013 в 15:37
Важно учитывать источник в вопросах, которые легко сбивают с толку, например: msdn.microsoft.com/en-us/library/jj676915 (v = vs.85) .aspx
 – 
Luke
30 Сен 2013 в 19:35
2
Я рассмотрел ваш пример в другом вашем вопросе, и я считаю, что в вашем внутреннем фрейме вы видите не настоящий режим IE5 \ Quirks, а нечто, называемое «почти стандартным режимом», который почти такой же, как стандарты, за исключением указанное вами поведение стола. Дополнительная информация здесь: msdn.microsoft.com/en -us / library / ff405912 (v = vs.85) .aspx. Отлично, если это сработает для вас, но другие вещи, кроме таблиц, не будут работать так, как вы ожидаете от чистого устаревшего режима.
 – 
Daniel S.
2 Окт 2013 в 09:32
2
«Windows Internet Explorer 10 и Internet Explorer 11 используют эмуляцию Quirks Mode, если страница верхнего уровня не находится в пограничном режиме». IE9: «Если страница верхнего уровня не находится в режиме IE9, элемент iframe не может отображать ее содержимое в режиме IE9, даже если веб-разработчик указывает это». - msdn.microsoft.com/en-us/ библиотека / ff955402 (v = vs.85) .aspx
 – 
Tamás Bolvári
21 Ноя 2014 в 20:15