2015-05-04 1 views
0

Я читал различные сообщения и блоги, в которых утверждалось, что амперсандам не нужно использовать объекты HTML при использовании в ссылках JavaScript (и предположительно CSS). Тем не менее, когда я проверяю скрипт с помощью https://validator.w3.org/, он отображается как ошибка. Пожалуйста, порекомендуйте.Должны ли амперсанды в JS и CSS-ссылках использовать объекты HTML?

<!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> 

ответ

3

Возможно, вы неправильно истолковали свои источники. Амперсанды должны быть закодированы в любом месте, они отображаются в HTML-документе, включая URL-адреса. Это означает, что ваш первый тег <script> и ваш первый тег <link> являются недопустимыми, а второй приемлемыми. Это связано с тем, что вы имеете дело с разметкой, а не с самими сценариями или стилями.

Если амперсанд является частью самого буквального URL или значения строки запроса, то оно должно быть процентами-закодированы %26, в противном случае он должен быть HTML-закодирована &amp; (обычно, когда он появляется в виде строки запроса сепаратора , как это имеет место в вашем примере).

Единственное место, где они не должны быть закодированы в HTML, - это в файлах JavaScript и CSS, если они существуют вне любой разметки HTML.

+0

Либо я неверно истолковал это, либо это был фиктивный совет. В любом случае, спасибо за ваше разъяснение. – user1032531

+0

Очень подробное объяснение. –

Смежные вопросы