Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2010, 11:03
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 160

Как передать параметры из дочернего окна в родительское с задержкой?
Есть родительское окно. В нём стоит обычный select при изменении которого в текстовое поле подставляются выбранные значения из выпадающего списка. Всё прекрасно работает.

Потребовалось дать возможность пользователю добавлять собственные значения, а не только те, что предлагают опции выпадающего списка. Добавил в javascript if/else которые при выборе клиентской опции открывает новое окно. Окно открывается, пользователь производит какие-то действия, затем возвращает в родительское окно opener, всё возвращается, только проблема в том, что javascript уже отработал и возвращённое значение уже никому не нужно. Как быть?

Вот кусок кода:

var file_name = document.submit_form.file_from_select.value;

if (file_name == "new") {
window.open("bla-bla-bla");
}
...
req.open("GET", "script.cgi?file=" + , true);


Соответственно пока открывается новое окно javascript уже доходит до вызова GET, передает туда не данные из открывшегося окна (т.к. там пользователь еще не успел ничего выбрать), а "new", соответственно script.cgi такого значения не находит и нужной работы не выполняет.

Какой-то таймаут ставить я не понимаю как, ведь пользователь с этим новым окном может работать и минуту и 10 минут.

Как быть и есть ли вообще решение?

P.S. В примерах везде приводится открытие нового окна и только после выбора в нем некоего значения возврат к родительскому. В моем же случае у javascript'а уже есть набор необходимых значений и он их обрабатывает не дожидаясь возврата.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2010, 13:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,781

javascript_pupil, при таком открытии окон вы вообще можете остаться без родительского...
Как вариант делать "псевдоокно", т.е. обычный див, разукрашеный как окно и все действия производить в нём.
Либо showModalDialog!
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2010, 13:53
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от ksa
showModalDialog!
давайте тогда уже и showHelp() возьмем для кооллекции;

на этом можно и остановиться:
Сообщение от ksa
Как вариант делать "псевдоокно", т.е. обычный див, разукрашеный как окно и все действия производить в нём.
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2010, 14:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,781

Сообщение от monolithed
давайте тогда уже и showHelp() возьмем для кооллекции;
Ну это на любителя...
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2010, 14:15
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от ksa
Ну это на любителя...
Я же пошутил
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2010, 14:34
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 160

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

Новый файл загружается, но для того, чтобы он появился в выпадающем списке необходимо перезагрузить родительскую страницу. Этого я и хотел избежать передавая имя файла (с чем собственно скрипт и проводит манипуляции) обратно к родителю.
Ответить с цитированием
  #7 (permalink)  
Старый 22.11.2010, 15:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,781

Сообщение от monolithed
Я же пошутил
Я тоже...
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2010, 15:28
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от javascript_pupil
Новый файл загружается, но для того, чтобы он появился в выпадающем списке необходимо перезагрузить родительскую страницу. Этого я и хотел избежать передавая имя файла (с чем собственно скрипт и проводит манипуляции) обратно к родителю.
Ajax'om подгружайте
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2010, 15:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,781

Сообщение от javascript_pupil
чтобы он появился в выпадающем списке необходимо перезагрузить родительскую страницу
Это не обязательно делать...
Достаточно просто обратиться к родительскому окну из дочернего и выполнить в нём нужные преобразования.

Сообщение от javascript_pupil
Я решил его усовершенствовать и добавил опцию, которая открывает новое окно, в котором можно указать новое название файла.
Правда при этом никто не помешает пользователю закрыть родительское окно и привет.

Может пора более радикально усовершенствовать свой "скрипт"?
Ответить с цитированием
  #10 (permalink)  
Старый 22.11.2010, 17:34
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 160

Сообщение от ksa
обратиться к родительскому окну из дочернего и выполнить в нём нужные преобразования.
Так вот я это и пытаюсь сделать, а javascript уже выполнен к тому времени, когда пользователь в дочернем окне создал событие onchange. Как остановить выполнение я не понимаю, т.к. вовсе не обязательно, что пользователю потребуется новый файл. Вполне возможно, что он будет использовать уже имеющийся из списка.

Т.е. мне каким-то образом надо прервать выполнение скрипта, если одно из значений выпадающего списка равно, например, "new'. После этого в новом окне определится название нового файла и через opener будет возвращено родителю. Родитель же продолжит выполнение скрипта, но уже с новым, полученным из дочернего окна значением. Если же переменная не эквивалента заданному значению, то текущий скрипт выполняется как обычно. Как это сделать (вставить доп.условие и прервать выполнение скрипта до получения нового значения) я не знаю. Пытаюсь найти ответ у специалистов по этому языку.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать? При выходе мышкой за пределы окна браузера, начинает грузится другая стр alb Events/DOM/Window 13 01.09.2010 11:19
Как присвоить значение элементу формы материнского окна из дочернего? libinstyle Events/DOM/Window 15 28.07.2010 15:56
Может ли скрипт передать на сервер параметры окна :\ ForumReader Internet Explorer 5 21.07.2010 02:34
bind: как передать функции указатель на объект trial jQuery 4 25.05.2010 00:35
из дочернего окна вызывать методы родителського uzirig Общие вопросы Javascript 6 23.03.2008 11:33