Могут ли браузеры понимать значения атрибутов без кавычек? - PullRequest
0 голосов
/ 08 июня 2009

В дополнение к моему последнему вопросу я хотел бы знать, могут ли текущие браузеры читать значения атрибутов без кавычек , даже если значение содержит косую черту, например:

 <script src=/path/to/script.js type=text/javascript></script>

Будет ли это работать, не вызывая ошибку анализа DOM и не повреждая весь документ?

Ответы [ 4 ]

9 голосов
/ 08 июня 2009

Это действительный HTML 5 , но не действительный XHTML. Лучше всего включать цитаты, даже если вы не используете XHTML.

3 голосов
/ 08 июня 2009

Это в спецификации , поэтому вы должны быть в безопасности:

"В некоторых случаях авторы могут указывать значение атрибута без кавычек. Значение атрибута может содержать только буквы (az и AZ), цифры (0-9), дефисы (ASCII десятичные 45), точки ( ASCII десятичный 46), подчеркивания (ASCII десятичный 95) и двоеточия (ASCII десятичный 58). Мы рекомендуем использовать кавычки, даже если их можно устранить. "

1 голос
/ 08 июня 2009

Действителен в HTML4 / 5, если в значении нет пробелов. Он недопустим в XHTML, хотя он по-прежнему корректно отображается в некоторых (всех?) Браузерах.

Используя быстрый образец HTML-документа (в конце ответа), я протестировал его с Firefox 3.5 Beta 4, Google Chrome 2 и IE 7. Образец документа также был протестирован с HTML 4 Strict, HTML 4 Transitional, HTML 5 и XHTML типы документов. Все были успешно обработаны.

Некоторые другие вещи для рассмотрения ...

Многие современные браузеры пытаются отображать страницы в режиме, соответствующем стандартам. Если вы пытаетесь использовать XHTML и используете значения без кавычек, браузеры вернутся в режим причуд, что может повлиять на отображение ваших документов, соответствующих стандартам. По мере того как браузеры становятся все более и более совместимыми со стандартами, будущие спецификации могут выглядеть устаревшими.

Кроме того, в некоторых веб-платформах приложения могут обрабатывать шаблоны перед их обслуживанием. Опять же, если эти синтаксические анализаторы ожидают действительный XHTML, такие вещи могут вызвать сбои.

Пока вы придерживаетесь HTML, а не XHTML, у вас все будет в порядке без кавычек, но нет никакой гарантии, что произойдет с браузером XHTML для браузера. Добавление кавычек кажется малозатратным, и ваш код в целом соответствует стандартам на будущее.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>No Quotes Test</title>
</head>
<body>
<input type="text" value="with/quotes and spaces" ></input>
<input type=text value=no/quotes and spaces ></input>
<input type=text value=no/quotes_no_spaces ></input>
</body>
</html>
0 голосов
/ 08 июня 2009

Действителен в HTML, но не считается лучшей практикой. Это не XHTML, поэтому, если вы к этому стремитесь, я бы предложил заключить его в кавычки. Сейчас это просто привычка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...