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


Автор: IZ@TOP 14.4.2004, 11:11
Задача следующая:
Нужно получить имя открывшего окна из нового экз. окна. Пытался с помощью parent, top и т.п. но не работает. Это нужно для присвоения этого имени target'u формы во вновь открытом окне для ее отправки в родительское окно.

Автор: GoodBoy 14.4.2004, 11:18
родительское окно доступно через свойство opener

Автор: IZ@TOP 14.4.2004, 11:56
GoodBoy, я и это пробовал. Не помогает. Может я что то не правильно сделал, но присвоить document.getElementById('formid').target'у нельзя: ни opener ни opener.name не помогает. А вот window.opener.focus() работает.

Автор: Sardar 14.4.2004, 12:16
Может opener.name пустой...?
В обычном документе по моему нельзя задать имя текущего окна из HTML. Попробуй задать имя вручную из скрипта.
Код
window.name='window_name';
...
document.getElementById('formid').target=opener.name;

Автор: GoodBoy 14.4.2004, 12:58
если запрос не очень большой, то можно попробовать GETом отправить...
что-то типа: window.opener.location.href='/location/page.html?твой_запрос'

Автор: IZ@TOP 14.4.2004, 13:23
GoodBoy, нет, гетом не пойдет, нужно именно постом, это требование безопасности скрипта. Я видел как такое работает на других страницах. Может быть отлавливать из радительского окна событие нажатия кнопки? И если оно произошло, субмитьить форму (соотв. расположить ее в родительском окне). Хотя не хочется вставлять каждый раз на пользовательскую страничку форму sad.gif

Автор: GoodBoy 14.4.2004, 13:57
Так, как Sardar сказал должно работать!!!!

в родительском окне -
Код
<script>
self.name='par';
</script>

а в дочернем -
Код
<script>
function DO(forma) {
   forma.target = opener.name;
}
</script>


<form onSubmit="DO(this);">
<input type=text name=qwe>
<input type=submit>
</form>

Автор: IZ@TOP 14.4.2004, 14:10
Извиняюсь, я сообщения Sardar'a не заметил. Кстати, opener.name пуст, это я еще позавчера проверял. Всем спасибо. будем пробовать.

Автор: GoodBoy 14.4.2004, 14:44
Цитата
Извиняюсь, я сообщения Sardar'a не заметил.

2 Sardar - слона-то я и не приметил... :-)))))))))))))))))))))))))))))))))))))))))))))))

Автор: Sardar 14.4.2004, 18:23
Ну все блин, может аватара сменить, а то в глаза не бросаюсь... biggrin.gif

Автор: IZ@TOP 15.4.2004, 17:00
Ан, не работает присвоение window.opener.name = 'winame'! Определял до открытия окна - ошибка, определял после открытия окна - субмитит на текущее окно. Что делать?

Автор: Sardar 15.4.2004, 22:30
Цитата
Определял до открытия окна - ошибка, определял после открытия окна - субмитит на текущее окно

Не понял в каком документе(окне) ты это делал...? У меня все работает...
Есть страница которая открывает дочернее окно, а дочернее окно подгружает в родительское ответ формы, тогда:
Код
//в родительском окне вставляем этот код
self.name='winname';

//a в дочернем этот
self.document.forms['formname'].target = window.opener.name;

Так я тебя понял...
Мозилла не дает править свойства чужих окон из друго окна(window.opener.name='winname' - ты же правиш имя родительского из дочернего окна...). По идее это правильно, окно должно предоставить доступные функции, где само решит что можно изменять.

Автор: IZ@TOP 16.4.2004, 09:22
Я не совсем так делал, я в родительском окне, после открытия дочернего окна, назначал opener.name имя, видимо нужно делать через self.name sad.gif ступил. Попробуем сегодня.

Автор: GoodBoy 16.4.2004, 11:16
Цитата
я в родительском окне, после открытия дочернего окна, назначал opener.name

Шутник!!!!!!!! Какой же opener может быть у самостоятельно открытого окна!!!!! Хотя у меня после бессонных ночей еще и не такие свойства у объектов появлялись...
:-))))))))))))))))))))))))))))))))))

Автор: Guest 16.4.2004, 16:13
GoodBoy , tounge.gif Ты прав... ступил дважды biggrin.gif

Автор: IZ@TOP 16.4.2004, 16:14
Предыдущий пост мой smile.gif

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