Тег Script в строке Java Script

Я столкнулся с проблемой, в которой тег script заканчивается в кавычной строке в JavaScript, и он убивает script. Я предполагаю, что это не ожидаемое поведение. Пример этого можно увидеть здесь: http://jsbin.com/oqepe/edit

Мой браузер для тестовых случаев для заинтересованных: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: 1.9.1.4) Gecko/20091028 Ubuntu/9.10 (кармический) Firefox/3.5.4.

Ответ 1

Что происходит?

HTML-парсер браузера увидит </script> внутри строки, и он будет интерпретировать его как конец элемента script.

Посмотрите на синтаксическую окраску этого примера:

<script>
var test = 'foo... </script> bar.....';
</script>

Обратите внимание, что панель слов обрабатывается как текстовое содержимое вне элемента script...

Обычно используемым методом является использование оператора конкатенации:

var test = '...... </scr'+'ipt>......';

Ответ 2

Вам нужно сбежать от него, иначе он будет частью HTML.

var test = 'what the hell... \<\/script\> \<h1\>why?!?!?!\<\/h1\>';