Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Экранирование символов


Автор: shootnix 20.6.2007, 19:56
Есть проблема с работой в FCKeditor'e: подсовываю ему в текстарию значение переменной стринговой, сохраненной им же ранее, выдает ошибы. Проблема, собственно, в том, что он воспринимает все кавычки и прочие такие штуки как символы кода и пытается их исполнить.
Такой вопрос: как в яваскрипте сделать так, чтобы эта строка читалась как банальная строка, а не код и тому подобное? Т.е. без интерполяции и т.п.? Можно, конечно, заюзать регекспы, но гимориться, если чесно, не оч. хочется. Может есть более "дешовый" метод обойти эту проблему?

Автор: vasac 20.6.2007, 19:59
Проиллюстрируйте вашу проблему примером.

Автор: shootnix 22.6.2007, 18:26
Собственно, иллюстрировать-то и нечего...
Я, кажется, до чего-то докопался тут.. Есть такой вопрос: в JavaScript как-то можно присваивать переменным значения многострочного текста? Эм.. типа того:
Код

my $string = q~dfdfgdf
gfdfgdfg
fgdfgfgf~;

Ну что-то навроде. Здесь менно текст содержит несколько строк. 
Я так подозреваю просто, что в этом проблема. Я просто присаваиваю зачение свойству:
Код

oFCKeditor.Value = "<% $var %>";

Значение это втыкается парсером потом уже, после всех процедур по выниманию значния из базы и все такое.. 
Вот... а ругается так: "незавершенная строковая константа". Ну и соответственно, в исходнике страницы потом вот что:
Код

oFCKeditor.Value = "Let\'s revisit the ...
";

Ну вот... я и думаю... 

Автор: vasac 22.6.2007, 19:20
JS ругается — смотрите код JS в браузере, а не Perl на сервере.
При формировании присваивания текстового значения в JS экранируйте кавычки слешем. Так же смотрите, чтобы в значение не попала последовательность "</script>".
При формировании содержимого <textarea> преобразуйте символы в спецпоследовательности. < — &lt; и т.д.
В PHP для этих действий есть функции http://php.net/addslashes и http://php.net/htmlspecialchars. Уверен, в перле есть аналоги.

Автор: shootnix 23.6.2007, 07:58
Дык! Я и смотрю smile Символы я экранирую, скобки нельзя трогоать — они еще пригодяться. Тут проблема именно с перепрыгом на другую строку, поэтому яваскрипт и ругается: "незавершенная строковая константа". А с переходм не знаю, что делать, не могу его удальит, тоже глюк smile))
Вот я и говорю: а нету, да, в яваскрипте такой штуки, чтобы текст можно было втыкать на разных строчках?

Автор: vasac 24.6.2007, 17:04
\n

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)