Тег скрипта в строке JavaScript

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

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

2 ответа

Решение

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

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

Посмотрите на раскраску синтаксиса в этом примере:

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

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

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

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

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

var test = 'what the hell... \<\/script\> \<h1\>why?!?!?!\<\/h1\>';
Другие вопросы по тегам