JS和CSS链接中的&符号是否应该使用HTML实体?

时间:2015-05-04 16:24:44

标签: html

我已经阅读了各种帖子和博客,指出当在JavaScript(以及可能是CSS)链接中使用时,&符号不需要使用HTML实体。但是,当我使用https://validator.w3.org/验证脚本时,它显示为错误。请指教。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Testing</title>  
        <link href="file1.css?x=1&y=2" type="text/css" rel="stylesheet" />
        <link href="file2.css?x=1&amp;y=2" type="text/css" rel="stylesheet" />
        <script src="file1.js?x=1&y=2" type="text/javascript"></script>
        <script src="file2.js?x=1&amp;y=2" type="text/javascript"></script>
    </head>
    <body>
    </body> 
</html> 

1 个答案:

答案 0 :(得分:3)

您可能误解了您的来源。 &符号必须在任何地方编码,它们出现在HTML文档中,包括URL。这意味着您的第一个<script>代码和第一个<link>代码都无效,而第二个代码可以接受。这是因为您正在处理标记,而不是脚本或样式表本身。

如果“&”符号是文字网址本身或查询字符串值的一部分,那么它需要进行百分比编码为%26,否则必须将其编码为&amp;(通常在出现时)作为查询字符串 separator ,就像您的示例中的情况一样。)

他们不需要进行HTML编码的唯一地方是在JavaScript和CSS文件中,只要它们完全存在于任何HTML标记之外。