У меня есть некоторый Javascript-код, который необходимо динамически создать в виде строки и затем «передать» на страницу с помощью функции JScript.
например, включить это:
<script type="text/javascript">
var so_id = new SWFObject("url", "so_id", 600, 400, "7", "#FFFFFF");
</script>
Вthis:
var retString = '<script type="text/javascript">\n'
+ 'var so_' + id + ' = new SWFObject("'
+ url + '", "' + id + '", ' + width
+ ', ' + height + ', ' + player + ', "#FFFFFF");\n'
+ '</script>\n';
Я ищу простой способ превратить первый бит кода в строку, как в нижнем примере.Любые кавычки и т. Д. Должны быть экранированы.
В этом конкретном случае мне не нужно ничего экранировать, поскольку я использую различные типы кавычек для окружения строки, чем те, которые внутри.В идеале решение позаботится об этом самостоятельно, но я с удовольствием уточню, какой из них я использую.
В данный момент я избегаю всего вручную, но это довольно трудоемкий процесс.начать с синтаксического анализатора на основе JS / HTML-форм, но задался вопросом, слышал ли кто-нибудь в SO что-либо подобное, описанное?
EDIT
Бит фона:
Мы используем пакет для создания онлайн-опросов под названием ConfirmIt, который использует JScript для добавления дополнительных функций (логика / упорядочение вопросов и т. Д.).Чтобы получить JavaScript на страницу, мы скомпилируем String, используя функцию JScript, как описано выше, и затем она «загружается» на страницу при загрузке.Это означает, что у меня достаточно ограниченный набор инструментов для использования, поэтому вам необходимо принять это во внимание при ответе.
РЕДАКТИРОВАТЬ 2
Iнаписал утилиту JavaScript для этого с переключателем для переключения между одинарными и двойными кавычками.Пока только один набор кавычек используется последовательно, вам не нужно беспокоиться о динамическом экранировании 2 наборов.