我已经阅读了各种帖子和博客,指出当在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&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&y=2" type="text/javascript"></script>
</head>
<body>
</body>
</html>
答案 0 :(得分:3)
您可能误解了您的来源。 &符号必须在任何地方编码,它们出现在HTML文档中,包括URL。这意味着您的第一个<script>
代码和第一个<link>
代码都无效,而第二个代码可以接受。这是因为您正在处理标记,而不是脚本或样式表本身。
如果“&”符号是文字网址本身或查询字符串值的一部分,那么它需要进行百分比编码为%26
,否则必须将其编码为&
(通常在出现时)作为查询字符串 separator ,就像您的示例中的情况一样。)
他们不需要进行HTML编码的唯一地方是在JavaScript和CSS文件中,只要它们完全存在于任何HTML标记之外。