Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2009, 15:50
ksl ksl вне форума
Новичок на форуме
Отправить личное сообщение для ksl Посмотреть профиль Найти все сообщения от ksl
 
Регистрация: 06.08.2009
Сообщений: 3

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

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

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

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

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

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

Спасибо за ответ
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2009, 15:58
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

window.opener.opener

?
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2009, 19:38
ksl ksl вне форума
Новичок на форуме
Отправить личное сообщение для ksl Посмотреть профиль Найти все сообщения от ksl
 
Регистрация: 06.08.2009
Сообщений: 3

Сообщение от Андрей Параничев Посмотреть сообщение
window.opener.opener

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

а если потом будет не 2 а 3 окна ? как можно обратиться к главной странице, от которой начинали запускаться окна ? как в этом случае делать ?
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2009, 20:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

top



UPD: Нет, наврал, это для фреймов. Тут видимо или бежать по opener'ам, или в каждом окне сохранять ссылку на главное.
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2009, 20:42
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

ksl,
var topWindow = window.opener;
while (topWindow.opener != null) {
    topWindow = topWindow.opener;
}
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2009, 11:55
ksl__
 
Сообщений: n/a

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

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

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

после закрытия окна имеем:
родительское - попап окно 1 - .... - попап окно 3
Ответить с цитированием
  #7 (permalink)  
Старый 07.08.2009, 13:27
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

После закрытия связь окон теряется, запоминайте ссылку на родительское окно сразу, при открытии дочернего.
Ответить с цитированием
  #8 (permalink)  
Старый 08.08.2009, 21:55
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ksl, а зачем столько окон?
Ответить с цитированием
  #9 (permalink)  
Старый 19.08.2009, 13:37
ksl___
 
Сообщений: n/a

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

Кстаи, если удалил промежуточное окно - ругается:
Ошибка: 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)
Ответить с цитированием
  #10 (permalink)  
Старый 19.08.2009, 13:39
ksl ksl вне форума
Новичок на форуме
Отправить личное сообщение для ksl Посмотреть профиль Найти все сообщения от ksl
 
Регистрация: 06.08.2009
Сообщений: 3

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

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

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

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]

Последний раз редактировалось ksl, 19.08.2009 в 15:45.
Ответить с цитированием
Ответ



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

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