3

是否可以使用 jQuery 更改 X-UA-Compatible 元标记?我目前正在处理将通过 iFrame 嵌入到另一个页面的页面。父文档当前将 X-UA-Compatible 标记设置为 Edge,这完全破坏了我的框架。我希望以某种方式强制父文档重新加载页面但应用 IE8 标准。

现在我正在打电话

$("meta[name=X-UA-Compatible]", top.document).attr('content', 'IE=8'); 

这不起作用。我开始认为这根本不可能,因为即使在我正在处理的框架内,我也无法以显着改变 IE9 解析它的方式来更改此属性。

我正在查看此图表: http: //i.stack.imgur.com/e5gPv.png看来我只能将框架切换到 Quirks 或 IE9,这非常不方便。有没有人有任何想法?也许有一个我根本没有看到的ajax解决方案..

4

2 回答 2

2

所以我终于想通了,如果您需要重新加载框架,这是需要放置在框架 HTML 中的代码。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
if($('meta[http-equiv=X-UA-Compatible]', top.document).attr('content')!='IE=8') 
{
//alert('adjusting IE compatibility');
$('meta[http-equiv="X-UA-Compatible"]', top.document).attr('content', 'IE=8');
$('meta[http-equiv="X-UA-Compatible"]').attr('content', 'IE=8');
$('#FRAMEID',window.parent.document).attr('src',$('#FRAMEID',window.parent.document).attr('src'));
}
</script>

它仍在进行测试以确认解析器合法更改,但目前这是我们得到的最好的快速修复。

于 2012-06-26T22:35:47.120 回答
1

在您的代码行中,您在“[name=X-UA-Compatible”之后缺少一个括号。
这可能是问题吗?

另外,您无法控制首页的代码,并且它在同一个域中吗?

于 2012-06-26T01:08:39.763 回答