Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не получается вернуть в родительское окно значение из нескольких строк (https://javascript.ru/forum/misc/13432-ne-poluchaetsya-vernut-v-roditelskoe-okno-znachenie-iz-neskolkikh-strok.html)

javascript_pupil 28.11.2010 13:52

Не получается вернуть в родительское окно значение из нескольких строк
 
Есть переменная, например:
$text = qq|<p>Text</p>

<p>Text</p>|;


Насколько я понимаю, с помощью Javascript невозможно передать несколько строк, а только одну. Меняю каждую новую строку на ``, а затем пытаюсь вернуть значение в родительское окно (в примере заменено на alert) в поле textarea с подстановкой:
<script type="text/javascript">
var mod_text = '$text';
mod_text = mod_text.replace(/``/,'\\n');
alert(mod_text)
</script>
Не работает.

Подскажите пожалуйста, как быть?

javascript_pupil 28.11.2010 14:08

С данным вопросом разобрался - забыл поставить модификатор "g".

Остался вопрос: можно ли в Javascript передавать многострочные переменные или надо вот так вот изгаляться как выше написано?

ksa 28.11.2010 14:15

Цитата:

Сообщение от javascript_pupil
многострочные переменные

В js нет такого понятия...
Например ты пишешь про строковую переменную и не более того. Просто в той строке встречаются символы "возврат каретки" и "перевод строки"...

javascript_pupil 28.11.2010 14:37

Это я понял уже. Но я работаю в связке Perl + Javascript и когда в переменной Perl попадаются переносы строк в Javascript'е с ними постоянно возникают грабли.

Может быть есть какое-то типовое решение для данной проблемы?

И еще вопрос: как передать в родительское окно значение "чекбокса"?

Пытался делать так:
window.opener.document.new_record.newdata.value = 'checked';


Не работает. Надо, чтобы флажок автоматически ставился.

Gvozd 28.11.2010 15:23

alert('первая  строка\r\nвторая строка');

window.opener.document.new_record.newdata.checked= true;

dmitriymar 28.11.2010 16:20

1через куки
2через обращение к тегу род формы.

ksa 28.11.2010 16:53

Цитата:

Сообщение от javascript_pupil
я работаю в связке Perl + Javascript и когда в переменной Perl попадаются переносы строк в Javascript'е с ними постоянно возникают грабли

Наверняка в Перле есть вариант "преобразования" строчной переменной, дабы потом "не возникали грабли"...

monolithed 28.11.2010 17:44

javascript_pupil

Цитата:

Сообщение от javascript_pupil
$text = qq|<p>Text</p>

Должно быть в кавычках

Цитата:

Сообщение от javascript_pupil
var mod_text = '$text';

Наоборот без кавычек, только дескрипторы не забудьте

Цитата:

Сообщение от javascript_pupil
mod_text = mod_text.replace(/``/,'\\n');

Это вообще лишнее

Цитата:

Сообщение от javascript_pupil
Это я понял уже. Но я работаю в связке Perl + Javascript и когда в переменной Perl попадаются переносы строк в Javascript'е с ними постоянно возникают грабли.

В большинстве языков в т.ч. и в Perl перенос строки делается как показал Gvozd

javascript_pupil 28.11.2010 18:14

Gvozd, за чекбокс спасибо, работает!

ksa, так я в вышеприведенном примере это и сделал. Заменил символы новой строки на ``.

monolithed, дело в том, что я привел куски кода так, как они идут в Perl, а там есть куча ньюансов при совместном использовании Perl'а и Javascript'а. Например, Perl экранирует "\", Javascript тоже. Поэтому их в некоторых случаях надо ставить не 2, а 4 подряд. И в родительское окно невозможно вернуть переменную с переносами строки не использовав подобную конструкцию с подстановкой.

Вобщем-то с вопросом я разобрался на ответе # 5. Всем большое спасибо за участие и оперативные подсказки!


Часовой пояс GMT +3, время: 23:00.