URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3786
[ Назад ]

Исходное сообщение
"JS: Передача данных в таблицу другого окна"

Отправлено MIR , 25-Дек-05 16:33 
Доброго времени суток, дорогие форумчане!

Сейчас или клаву, или лоб расшибу! Читать книги просьба не предлагать :)
Ситуация следующая. Имеется в главном окне формочка с texarea и button.
На нажатие кнопки установлена JavaScript-функция, которая открывает в новом окошке html-ку с табличкой.

Так вот, как мне достучаться до ячейки в таблце, расположенной в дочернем окне и передать туда данные?

ЗЫ. данные беру без проблем.
ЗЗЫ. если ниче не поможет, пойду в магазин за бубном и прочими шаманскими причандалами :)


Содержание

Сообщения в этом обсуждении
"JS: Передача данных в таблицу другого окна"
Отправлено XAnder , 26-Дек-05 09:09 
>Так вот, как мне достучаться до ячейки в таблце, расположенной в дочернем
>окне и передать туда данные?

Или я что-то не понимаю, или всё довольно-таки просто:

childWindow.document.getElementById("myTD").innerHTML = "текст";

По крайней мере я подобные конструкции использовал много раз. Проблемы возникают обычно из-за того, что childWindow закрыто, или его document не успел загрузится. Например, когда в одной и той же функции открывается окно и сразу же идет обращение к его внутренностям. А они еще не загрузились.


"JS: Передача данных в таблицу другого окна"
Отправлено MIR , 26-Дек-05 10:14 
>>Так вот, как мне достучаться до ячейки в таблце, расположенной в дочернем
>>окне и передать туда данные?
>
>Или я что-то не понимаю, или всё довольно-таки просто:
>
>childWindow.document.getElementById("myTD").innerHTML = "текст";
>
>По крайней мере я подобные конструкции использовал много раз. Проблемы возникают обычно
>из-за того, что childWindow закрыто, или его document не успел загрузится.
>Например, когда в одной и той же функции открывается окно и
>сразу же идет обращение к его внутренностям. А они еще не
>загрузились.

Здесь все понятно. Из-за этих причин вчера у меня ничего и не получалось.
Обошел (ниже на форуме был похожий пример). Данные перегоняются в переменную дочернего окна.
Если их выгнать alert'ом - все буковки на месте :)
Но, при использовании document.getElementById("myTD").innerHTML = "текст" съедаются все переводы кареток. Т.е. текст помещается без абзацев, в один сплошной большой абзац.
Вот какая засада.


"JS: Передача данных в таблицу другого окна"
Отправлено XAnder , 26-Дек-05 18:15 
>Но, при использовании document.getElementById("myTD").innerHTML = "текст" съедаются все переводы кареток. Т.е. текст
>помещается без абзацев, в один сплошной большой абзац.

Так оно и будет, конечно же! Ведь это inner_H_T_M_L_! Тот самый "текст" должен быть в формате HTML. То есть все переводы строк должны быть тегами <br>.

Напрямую передавать в innerHTML текст, введенный юзером, небезопасно - он может вставить какой-нибудь злобный тег или "<!--" - будет весело, попробуйте :) Пользовательский ввод всегда нужно проверять и никогда ему не доверять.