HTML X-UA兼容标签在IE 9中不起作用

时间:2012-07-09 16:01:51

标签: html grails internet-explorer-9 knockout.js

我收到错误:X-UA兼容的META标记('IE = 7')被忽略,因为文档模式已经完成。

我已经读过这个问题的解决方案是在head标签中没有声明meta标签,但我尝试将这个meta标签移动到head标签的第一行并且不能修复错误。

我正在使用Grails .gsp文件,该文件也使用knockout js。

以下是相关代码:

<!doctype html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>myInfinitec Membership Management</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="shortcut icon" href="/ucpmanagementportal/static/images/favicon.ico" type="image/x-icon">

  <meta name="layout" content="main"/>




        <script src="/ucpmanagementportal/static/plugins/jquery-1.7.1/js/jquery/jquery-1.7.1.min.js" type="text/javascript" ></script>
<link href="/ucpmanagementportal/static/bundle-bundle_coreCSS_head.css" type="text/css" rel="stylesheet" media="screen, projection" />



    </head>

编辑:在IE开发人员窗口中,每行之间都会生成“文本空文本节点”行。也许这算是在X-UA兼容元标记之前有一些东西。我读到修复是为受影响的元素添加display:block和zoom:1但这不起作用。以下是我所描述的一个例子:

<head>
Text - Empty Text Node
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Text - Empty Text Node
<meta style="display: block; zoom: 1;" http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
Text - Empty Text Node

2 个答案:

答案 0 :(得分:0)

好吧我解决了我的问题,虽然我的问题与我描述的错误没有任何关系。由于IE缓存了ajax调用,我遇到了错误,并且能够通过添加jQuery.ajaxSetup({cache:false})解决问题。

答案 1 :(得分:0)

这对我来说没有用。我找到的修复是将X-UA-Compatible值添加到每个控制器的拦截器之前,这似乎使它每次都可以工作。例如,在每个控制器中我都有

def beforeInterceptor = [action : this.&setBrowserCompat]

private setBrowserCompat(){
response.addHeader("X-UA-Compatible", "IE=edge")
}

这似乎总能奏效。希望这有用