我为IE提供了这样的HTML结构。
<!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等)
在IE8浏览器模式下不生成内部iframe。但!!在IE7或IE9
下工作正常当我删除标签时 - 在所有版本的IE中都能正常工作。
问题出在哪里?在DOCTYPE中,标签还是其他地方?
答案 0 :(得分:3)
页面根据最顶层的帧进行渲染(浏览器模式在开头只设置一次,嵌套帧中的所有值都被忽略)。
答案 1 :(得分:1)
通过测试我可以确认rocky的答案。 通过更改我最顶层框架的doctype,我能够让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的第三个帧。
(是的,它很难看,但不幸的是固定应用程序的一部分)。