Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.11.2010, 13:52
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 222

Не получается вернуть в родительское окно значение из нескольких строк
Есть переменная, например:
$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>
Не работает.

Подскажите пожалуйста, как быть?
Ответить с цитированием
  #2 (permalink)  
Старый 28.11.2010, 14:08
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 222

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

Остался вопрос: можно ли в Javascript передавать многострочные переменные или надо вот так вот изгаляться как выше написано?
Ответить с цитированием
  #3 (permalink)  
Старый 28.11.2010, 14:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от javascript_pupil
многострочные переменные
В js нет такого понятия...
Например ты пишешь про строковую переменную и не более того. Просто в той строке встречаются символы "возврат каретки" и "перевод строки"...
Ответить с цитированием
  #4 (permalink)  
Старый 28.11.2010, 14:37
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 222

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

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

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

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


Не работает. Надо, чтобы флажок автоматически ставился.
Ответить с цитированием
  #5 (permalink)  
Старый 28.11.2010, 15:23
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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

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

Последний раз редактировалось Gvozd, 28.11.2010 в 15:25.
Ответить с цитированием
  #6 (permalink)  
Старый 28.11.2010, 16:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

1через куки
2через обращение к тегу род формы.
Ответить с цитированием
  #7 (permalink)  
Старый 28.11.2010, 16:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от javascript_pupil
я работаю в связке Perl + Javascript и когда в переменной Perl попадаются переносы строк в Javascript'е с ними постоянно возникают грабли
Наверняка в Перле есть вариант "преобразования" строчной переменной, дабы потом "не возникали грабли"...
Ответить с цитированием
  #8 (permalink)  
Старый 28.11.2010, 17:44
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

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
Ответить с цитированием
  #9 (permalink)  
Старый 28.11.2010, 18:14
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 222

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

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

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
<select> установка нескольких селектов в одно значение ky100 Общие вопросы Javascript 7 04.10.2010 02:02
Как вернуть фокус в окно редактирования? Roman Koff Общие вопросы Javascript 1 02.08.2010 12:35
Не получается передать в функцию значение javascript_pupil Events/DOM/Window 9 06.11.2009 15:32
Вернуть значение из HTTP Response Viper jQuery 0 05.10.2008 15:52
поменять цвет у нескольких строк в таблице Root Элементы интерфейса 4 21.04.2008 10:30