Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как установить свойство родительской страницы после запуска 2х последов. popup окон? (https://javascript.ru/forum/events/4597-kak-ustanovit-svojjstvo-roditelskojj-stranicy-posle-zapuska-2kh-posledov-popup-okon.html)

ksl 06.08.2009 15:50

Как установить свойство родительской страницы после запуска 2х последов. popup окон?
 
На главной странице по нажатию открывается стандартное поп-ап окно window.open(....№1...)
в выпадающем окне №1 по нажатию открывается другое окно (тоже window.open(....№2...) )

В втором окне (2) пользователь может поменять значеня в форме.Как при этом можно сослаться на главную страницу, которая запускала окно 1?

Если бы окно 1 просто открылось - можно было обратиться к родительскому окну через : window.opener.document.форма.переменн ая

Этот вызов тоже не работает window.parent.document.форма.переменн ая

т.к. окно 2 уже открыто через окно 1, а оно через главное окно :-(

Пожалуйста подскажите, как можно обратиться к главной странице ? например из окна 2 установить значение переменной.

Спасибо за ответ :)

Андрей Параничев 06.08.2009 15:58

window.opener.opener

?

ksl 06.08.2009 19:38

Цитата:

Сообщение от Андрей Параничев (Сообщение 26125)
window.opener.opener

?

Спасибо за ответ.

а если потом будет не 2 а 3 окна ? как можно обратиться к главной странице, от которой начинали запускаться окна ? как в этом случае делать ?

Kolyaj 06.08.2009 20:19

top



UPD: Нет, наврал, это для фреймов. Тут видимо или бежать по opener'ам, или в каждом окне сохранять ссылку на главное.

Андрей Параничев 06.08.2009 20:42

ksl,
var topWindow = window.opener;
while (topWindow.opener != null) {
    topWindow = topWindow.opener;
}

ksl__ 07.08.2009 11:55

Спасибо! Ваш цикл поиска родительнского окна работает.

А если закрыть окно 2, то окно 3 не может в цикле выйти на родительское окно. Получается, делать проверку, если промежуточного окна нет, тогда обращаться к чему ?

родительское - попап окно 1 - попап окно 2 - попап окно 3

после закрытия окна имеем:
родительское - попап окно 1 - .... - попап окно 3

Андрей Параничев 07.08.2009 13:27

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

x-yuri 08.08.2009 21:55

ksl, а зачем столько окон?

ksl___ 19.08.2009 13:37

Для чего ? хочу показать карточку товара, и окно корзины где будут товаары сохраняться. а все окна вызываются с страницы магазина.

Кстаи, если удалил промежуточное окно - ругается:
Ошибка: topWindow is null
уже так пробовал: думал сосчитать кол-во отрытых окон. Если вызвалось окно из главного - счетчик будет = 0, а если из другого -будет > 0

var WindowCounter = 0;

if(window.opener != null) {
var topWindow = window.opener;

while (window.opener != null) {
topWindow = topWindow.opener;
WindowCounter = WindowCounter +1;
}
}




if(WindowCounter == 1) {
topWindow.close();
}

alert("WinCounter = "+WindowCounter)

ksl 19.08.2009 13:39

Хотел передать указатель на открытое окно между окнами, как советовал Андрей Параничев, за что ему большое спасибо!

но как его переслать по ссылке?

собираю указатель на окно и потом делаю :

var topWindow = window.opener;
		while (topWindow.opener != null) {
	    	topWindow = topWindow.opener;
			}
	
	window.open('basket.php?'+'getwindref='+topWindow,'korzina','status=yes,scrollbars=yes,width=600,height=450,resizable=yes','alwaysRaised');



получается у менят так: .... getwindref=[object Window]

как потом средствами РНР или смарти взять этот object Window и изменить значение типа: topWindow.form.field.value = ....

Ошибка: missing ] after element list
var topWindow = [object Window]


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