Document.write链接标记

时间:2011-06-19 18:19:27

标签: javascript xhtml

验证我的文档时,我不明白该错误:

第14行,第91列:文档类型不允许元素“链接” ...... {(' <link rel="stylesheet" type="text/css" href="1400.css" media="screen" />'); ✉ 上面提到的元素是在不允许的上下文中找到的。这可能意味着您有错误的嵌套元素 - 例如“body”部分中的“style”元素而不是“head”内部 - 或者两个重叠的元素(不允许)。

此错误的一个常见原因是在HTML文档中使用XHTML语法。由于HTML的隐式闭合元素规则,此错误可以创建级联效果。例如,在HTML文档的“head”部分中使用XHTML的“自闭”标签“meta”和“link”可能会导致解析器推断出“head”部分的结尾和“body”的开头“section(不允许使用”link“和”meta“;因此报告错误)。

代码是:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">

<head>

    <title>Portfolio</title> 
<meta http-equiv="Content-Type" content="text/html;
    charset=UTF-8" /> 

<link id="disabled" type="text/css" rel="stylesheet" href="disabled.css" media="screen"/>

<script type="text/javascript">

    document.write(' <link rel="stylesheet" type="text/css" href="1400.css" media="screen"/>');
    document.write('<link rel="stylesheet" type="text/css" href="1024.css" media="screen"/>'); 
    document.write(' <link rel="stylesheet" type="text/css" href="320.css" media="screen"/>');
    document.write(' <link rel="stylesheet" type="text/css" href="Ipad.css" media="screen"/>');

</script> 


<!--[if IE]>
    <link rel="stylesheet" href="IE.css" media="screen"/>
<![endif]-->


<!--[if IE 6]>
    <link rel="stylesheet" href="disabled.css" media="screen"/>
<![endif]-->

    <link rel="shortcut icon" href="images/favicon.png" />





</head>

<body>

我想知道的是如何解决这个问题,因为我采用这种方式进行优雅降级(禁用JS的用户)

1 个答案:

答案 0 :(得分:0)

您的文档正在被解析为严格的XML。

XML解析器在Javascript字符串中看到<link />标记,并抱怨<link> s不能嵌套在<script>内。