Тег <Meta http-equ = "X-UA-Compatible"..> для Iframe не работает в IE8

Я получил такую ​​структуру HTML для IE.

<!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></head>
<body id="body">
    <div>
      <iframe>
         <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
         <html xmlns="http://www.w3.org/1999/xhtml">
            <head></head>
            <body> 
                <!-- Here goes some graphic content using dojo libs -->
            </body>
         <html>      
      </iframe>
    </div>
</body>
<html>

Когда я вставляю в оба заголовка (основной и заголовок iframe html) тег

<meta http-equiv="X-UA-Compatible" content="IE=8,IE=9"/>

nomatter какой контент внутри тега (IE=8 или IE=8,IE-9 или IE=EDGE и т. д.)

внутренний iframe не генерируется в режиме браузера IE8. Но!! отлично работает под IE7 или IE9

Когда убираю тег - отлично работает во всех версиях IE.

В чем проблема? В DOCTYPE, тег или в другом месте?

2 ответа

Страница отображается в соответствии с самым верхним фреймом (режим браузера устанавливается только один раз в начале, а все значения во вложенных фреймах игнорируются).

Через тестирование я могу подтвердить ответ Роки. Мне удалось заставить IE9 отображать режим стандартов, изменив тип документа моего верхнего фрейма. Мне не нужно было отправлять X-UA-Compatible заголовок или метатег.

Любые кадры внутри верхнего не изменят режим, поэтому моя структура

<!doctype html>
<html lang="en">
    ...
    <iframe>
        <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//en">
        <html>
        ...
        <iframe>
            <!DOCTYPE html>
            ...

приводит к стандартному режиму для всех кадров, включая третий, где html5 отображается правильно.

(да да, это некрасиво, но, к сожалению, является частью фиксированного приложения).

Другие вопросы по тегам