Как экранировать HTML в javascript'е?

kanaris

Новичок
Как экранировать HTML в javascript'е?

Как в яваскрипте объявить строковую переменную с HTML-кодом?
С обычным кодом-то все нормально:

Код:
<script type="text/javascript">

var code='<h1>хтмл-код</h1>';

</script>
А вот с таким - проблема: тег "</script>" в объявляемой строке воспринимается, как закрывающий тег скрипта, несмотря на то, что это строка.

Код:
<script type="text/javascript">

var code='<script>alert("lol");</script><h1>хтмл-код</h1>';

</script>
p.s. варианты типа var code='&lt;script&gt;alert("lol");&lt;/script&gt;&lt;h1&gt;хтмл-код&lt;/h1&gt;'; не предлагайте, т.к. я их наверняка уже рассмотрел :)
Нужно, чтобы объявленная строка содержала действительно HTML-код, а не с экранированными хтмл-сущностями.

Скрин:
 

vovanium

Новичок
да просто разбивают на части тег script
Код:
var code='<script>alert("lol");</s'+'cript><h1>хтмл-код</h1>';
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
гугл делает так:
Код:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
-~{}~ 02.11.09 15:03:

хотя это тоже экранированные сущности
 

kanaris

Новичок
Автор оригинала: vovanium
да просто разбивают на части тег script
Код:
var code='<script>alert("lol");</s'+'cript><h1>хтмл-код</h1>';
это уже ближе к истине. правда генерить такие переменные пыхом и передавать в хтмл будет проблематично. здесь яваскрипт генерится пыхом, передаются переменные с сервера на клиентскую сторону.
 
Сверху