Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: kan1 от 30 Января 2006, 13:04:49

Название: передача данных
Отправлено: kan1 от 30 Января 2006, 13:04:49
Как можно извлечь содержимое(многострочное)  из формы одного окна и добавить в пустой документ из другого???
Название: передача данных
Отправлено: CGVictor от 30 Января 2006, 14:55:10
kan1
Смотря какие окна (подчиненность).
Название: передача данных
Отправлено: kan1 от 31 Января 2006, 11:19:25
Из первого открывается второе(вначале пустое, постепенно заполняется), никаких связей между ними нет, фреймы не используются.
Название: передача данных
Отправлено: CGVictor от 31 Января 2006, 13:51:00
kan1
Из второго к первому можно обратиться, используя window.opener (в том случае, если оно открыто по window.open).
Если окна совсем посторонние - тогда никак.
Название: передача данных
Отправлено: kan1 от 31 Января 2006, 15:27:40
В первом окне есть форма с текстом (просто текст без использования каких-либо полей) на несколько строк. Есть ли какой-нибудь метод, что-бы копию содержимого этой формы добавить в документ из другого окна, к которому конечно можно обратиться?
Название: передача данных
Отправлено: CGVictor от 31 Января 2006, 16:08:15
kan1
Если из открывающего к открытому - тогда window-id.document.body.innerHTML или любой другой подобный вызов.
Если из открытого к открывшему - тогда document.body.innerHTML+=window.opener.getElementById(form-element-id).value (или тоже innerHTML).
[off]* или window.opener.document.getElementById(form-element-id).value, что-то я засомневался[/off]
Название: передача данных
Отправлено: kan1 от 01 Февраля 2006, 08:52:37
Почти работает.

Выдаёт ошибку но добавляет:
function addform(){
 win1=open("","Window1");
win1.document.body.innerHTML=win1.opener.document.body.all["fres1"].innerHTML;
};

А вот так только черту
function addform(){
win1=open("","Window1");
win1.document.body.innerHTML=win1.opener.document.body.all["fres1"].innerHTML;
 win1.document.writeln("
");
};

ПОЧЕМУ????
Название: передача данных
Отправлено: CGVictor от 01 Февраля 2006, 11:15:08
kan1
1.Обращаться к fres1 не через document.all, а через getElementById
2.writeln вполне справедливо заменяет содержимое документа. Добавляй HR к innerHTML.
Название: передача данных
Отправлено: kan1 от 01 Февраля 2006, 11:25:53
Позже я так и сделал (присоединение, а не запись) и всё заработало.
Название: передача данных
Отправлено: kan1 от 01 Февраля 2006, 13:54:56
В общем все данные замечательно добавляются, но почему-то не сохраняются, когда я в новом окне делаю "Сохранить как". Как можно организовать их сохранение, а то в результате получается пустая страница?
Название: передача данных
Отправлено: CGVictor от 01 Февраля 2006, 14:21:13
kan1
В IE<7 - никак (т.е., мне не известно, возможно решение и есть).
В Gecko и остальных обычный save сработает.
Название: передача данных
Отправлено: kan1 от 02 Февраля 2006, 14:50:06
Хоть как-нибудь, аплеты или ещё как. Пробовал загонять в текстовую переменную всё, а потом document.write, но  всё равно сохраняется пустая страница.
Название: передача данных
Отправлено: CGVictor от 02 Февраля 2006, 16:45:02
kan1
Можешь попробовать добавлять не в документ, а в textarea в существующем документе - поля IE сохраняет. А само поле можно сделать незаметным юзеру.
Но это уже костыль.
Название: передача данных
Отправлено: kan1 от 03 Февраля 2006, 09:11:01
Не получится, данные формируются динамически, так что количество строк, а значит и высота textarea не известны.