Что делает это означает: “document.write (' <scr' + 'ipt …”?

Большинство сопоставлений базы данных по умолчанию не чувствительно к регистру, но в мире SQL Server это может быть установлено в экземпляре, базе данных и уровне столбца.

19
задан vsync 24 September 2009 в 21:27
поделиться

6 ответов

Рассмотрим этот упрощенный пример:

<script>
document.write("something </script> something");
</script>

Анализатор HTML браузера увидит в строке JavaScript и интерпретирует его как конец элемента скрипта.

Анализатор HTML не знает синтаксиса JavaScript - он знает только то, что элемент .

(Это также знает, что у вас не может быть вложенных элементов в вашем примере.)

40
ответ дан 30 November 2019 в 02:39
поделиться

Предположим, вы пишете инструмент, который обнаруживает начало и конец блоков скрипта в фрагменте текста. Предположим, вы видите

<blah><blahdeblah><script>

blah blah blah

blah

print("</script>")

print("<script>")

blah

</script>

</blahdeblah></blah>

Не зная синтаксиса языка сценариев, как ваш инструмент узнает, что это ОДИН блок сценария, а не ДВА блока сценария с ") бла между ними?

Веб-браузер является таким инструментом. Это разумная практика, чтобы убедиться, что вы никогда не запутаете веб-браузер, никогда не имея в вашем файле, если это на самом деле не тег скрипта.

4
ответ дан 30 November 2019 в 02:39
поделиться

, чтобы он не оценивался, а вставлялся в виде строки.

3
ответ дан 30 November 2019 в 02:39
поделиться

Это плохой способ помешать валидаторам XML / XHTML и HTML кричать на исходный код.

3
ответ дан 30 November 2019 в 02:39
поделиться

Полное обсуждение этого вопроса см .:
http://www.wwco.com/~wls/blog/2007/04/25/using-script-in-a-javascript-literal/

Короткий ответ: ваш код разбирается на две части дискретные шаги.

Первый - XML. А это означает, что элемент . Важно помнить, что элементы XML не зависят от содержимого. Это означает, что синтаксический анализатор не знает еще , что там есть JavaScript.

Как только он получает содержимое элемента