Javascript 控制台中不兼容的IE文档模式错误?

Javascript 控制台中不兼容的IE文档模式错误?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我的jsp页面中有以下几行代码 <!--[if lt IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> <!--[if IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9

我的jsp页面中有以下几行代码

<!--[if lt IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if IE 8]><html lang="en" class="no-js lt-ie10 lt-ie9" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if IE 9]><html lang="en" class="no-js lt-ie10" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if gt IE 9]><!--><html lang="en" class="no-js" xmlns="http://www.w3.org/1999/html" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <!--<![endif]-->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>

  //some code

</html>

//一些代码
该代码在IE7和所有浏览器中运行良好。但当我使用IE9时,它会在IE控制台中给出下面的错误,并且页面不会呈现

日志:不兼容的IE文档模式

请帮帮我


谢谢

doctype必须是HTML文件的第一行。您还将打开HTML标记两次,在每个IE条件中打开一次,然后在下面再次打开

如果您计划支持IE以外的浏览器,那么使用条件包装HTML标记不是一个好的解决方案,因为无法为其他浏览器定义HTML标记,因为它们将忽略条件注释

一种解决方案是将所有类添加到HTML标记中,然后根据IE的版本有条件地导入css文件。这些文件将根据浏览器定义所需的类;例如,
ltIE7.css
将定义.lt-ie7类,
ltIE8.css
将定义.lt-ie8类,等等

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" lang="en" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
        <!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="ltIE7.css"/><![endif]-->
        <!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ltIE8.css"/><![endif]-->
        <!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ltIE9.css"/><![endif]-->
        <!--[if lt IE 10]><link rel="stylesheet" type="text/css" href="ltIE10.css"/><![endif]-->
    </head>
    <body>
        ...
    </body>
</html>

doctype必须是HTML文件的第一行。您还将打开HTML标记两次,在每个IE条件中打开一次,然后在下面再次打开

如果您计划支持IE以外的浏览器,那么使用条件包装HTML标记不是一个好的解决方案,因为无法为其他浏览器定义HTML标记,因为它们将忽略条件注释

一种解决方案是将所有类添加到HTML标记中,然后根据IE的版本有条件地导入css文件。这些文件将根据浏览器定义所需的类;例如,
ltIE7.css
将定义.lt-ie7类,
ltIE8.css
将定义.lt-ie8类,等等

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" lang="en" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
        <!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="ltIE7.css"/><![endif]-->
        <!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ltIE8.css"/><![endif]-->
        <!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ltIE9.css"/><![endif]-->
        <!--[if lt IE 10]><link rel="stylesheet" type="text/css" href="ltIE10.css"/><![endif]-->
    </head>
    <body>
        ...
    </body>
</html>

我正在使用外部css文件。如何将它们放置在外部css文件中?感谢您的回复…您只需创建一个文件并将所需规则放入其中。例如,您将创建
ltIE7.css
,并在该文件中定义
.lt-ie7
类。然后像我上面展示的那样导入它。请确保您的文件路径正确,否则样式将不会生效。但我还是犯了同样的错误。它在IE7中运行良好。问题出在IE9上。请尝试将doctype更改为:
抱歉。。。我不知所措。我的机器上没有IE9,因此无法自己测试:(我正在使用外部css文件。如何将它们放置在外部css文件中?感谢您的回复…您只需创建一个文件并将所需规则放入其中。例如,您将创建
ltIE7.css
,并在该文件中定义
.lt-ie7
类。然后按照上面的说明导入它。确保您的文件路径正确。)否则样式将不会生效。我按照u所说的将doctype放在第一行。但仍然会出现相同的错误。它在IE7中工作正常。问题在于IE9。请尝试将doctype更改为:
抱歉……我不知所措。我的机器上没有IE9,因此无法自己测试它:(