специальные символы во встроенном JavaScript - PullRequest
1 голос
/ 20 февраля 2010

У меня есть некоторый JavaScript, который встроен в HTML-файл, как это

<html>
    <head>
        <script>
            // and the script runs here
        </script>
    </head>
    <body></body>
</html>

И у него есть такая строка

if((os == 'Mac')&&((br == 'Safari')||(br == 'Chrome')))

Все идет хорошо (что означает, что скрипт работает), но валидатор кричит:

... символ "&" является первым символом разделителя, но встречается как данные
... Это сообщение может появляться в нескольких случаях:
-Вы пытались включить символ "<" на своей странице: вы должны экранировать его как "<" <br> -Вы использовали амперсанд без экранирования и "&": в некоторых случаях это может быть допустимо, но рекомендуется использовать "&", что всегда безопасно. -Другая возможность заключается в том, что вы забыли закрыть кавычки в предыдущем теге.

Кажется смешным заменить все & на & amp. Как я могу избавиться от этой ошибки?

1 Ответ

5 голосов
/ 20 февраля 2010

Если вы используете XHTML, вам необходимо заключить встроенные скрипты в раздел CDATA :

<script type="text/javascript">
// <![CDATA[
    document.write("&");
// ]]>
</script>

Дополнительная литература:

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