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

  • Автор темы Автор темы kanaris
  • Дата начала Дата начала

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-код, а не с экранированными хтмл-сущностями.

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

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