Что именно мне нужно скрывать внутри элемента `script`?
Какие части кода JavaScript мне нужно выполнить внутри элемента script
на странице HTML? Является ли <>&
достаточным или слишком большим?
[EDIT] Это связано с этой ошибкой: http://code.google.com/p/rendersnake/issues/detail?id=15#c6 комментарий # 6
Ответы
Ответ 1
В HTML (и XHTML, если вы злой человек, который отправляет ваши страницы XHTML как text/html
), теги script
#CDATA
, и поэтому единственное, что вам не нужно в контенте, это </script>
, так как это все, что синтаксический анализатор ищет сигнал конца тега. Не избегайте ничего; просто убедитесь, что в содержимом тега нет </script>
. Например, если у вас есть строка с закрывающим тегом script, разделите ее:
var a = '</scr' + 'ipt>';
В XHTML, отправленных как application/xhtml+xml
, script
теги #PCDATA
, и поэтому требуется экранирование <
и &
, если вы не можете использовать блок <![CDATA[ ... ]]>
для изменения на #CDATA
но в этом случае помните, что вы не можете иметь ]]>
в содержимом вашего тега.
Ответ 2
Как правило, единственное, что я убегаю, - это /
в закрывающих тегах. Таким образом:
var msg = "<p>Do you <em>really<\/em> think so, Miss Worthington?<\/p>";
В остальном я полагаюсь на комментирование всего:
<script>
<!--
var msg = "<p>Do you <em>really<\/em> think so, Miss Worthington?<\/p>";
-->
</script>
Комментарий обрабатывает теги открытия HTML.
Ответ 3
Escaped <, > и не работает со многими браузерами. Это достаточно хорошо, если вы поместите все в раздел CDATA. Обратите внимание, что сам раздел CDATA должен быть в комментарии JavaScript, чтобы он работал со всеми браузерами.
<script>
// <![CDATA[
script here
// ]]>
</script>