是否可以使用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解决方案..
答案 0 :(得分: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>
它仍在进行测试以确认解析器是否合法更改,但是现在这是我们获得的最佳快速解决方案。
答案 1 :(得分:1)
在您的代码行中,您在“[name = X-UA-Compatible”之后错过了一个方括号。
这可能是问题吗?
另外,您是否无法控制首页的代码,是否在同一个域中?