Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача фокуса окну, закрытие окна (4 вопроса ) (https://javascript.ru/forum/misc/6467-peredacha-fokusa-oknu-zakrytie-okna-4-voprosa.html)

prodigy007 29.11.2009 17:16

Передача фокуса окну, закрытие окна (4 вопроса )
 
Помогите пожалуйста мне нужно сделать тест не могу ответить на эти вопросы (гуглил и учебники читал уже 3 часа парюсь,). Вариантов ответа в вопросе несколько. ((( поэтому даже методом тыка не могу сделать(((
Пожалуйста напишите ответы или напишите метод как проверить в браузере.

1. Как из родительского окна можно передать фокус окну, открытому следующей командой?
wid = window.open('1.htm','wname','width=300,height=300' );

1) wname.focus()
2) wid.focus()
3) window.wid.focus()
4) window.wname.focus()
5) self.wid.focus()

2. Как из родительского окна можно закрыть окно, открытое ранее следующей командой?
wid = window.open('1.htm','wname','width=300,height=300' );

1) wname.close()
2) wid.close()
3) wid.document.close()
4) window.wid.close()
5) window.wname.close()
6) self.wid.close()


3 Как из программы, находящейся в окне, открытом следующей командой, передать фокус в родительское окно?
wid = window.open('1.htm','wname','width=300,height=300' );

1) window.opener.focus()
2) self.opener.focus()
3) wid.opener.focus()
4) opener.focus()
5) wname.focus()
6) wid.focus()



4. Как из программы, находящейся в окне, открытом следующей командой, закрыть родительское окно?
wid = window.open('1.htm','wname','width=300,height=300' );

1) opener.document.close()
2) window.opener.close()
3) self.opener.close()
4) wid.opener.close()
5) opener.close()
6) wname.close()
7) wid.close()

subzey 30.11.2009 01:43

А браузер — сферический в вакууме? В Опере с настройками по умолчанию передать фокус не получится вообще.

Но, так или иначе.
  • window.open() возвращает ссылку на объект window открытого окна.
  • К любой переменной в глобальной области можно получить доступ считая ее свойством объекта window. И наоборот.
  • self для окна без фреймсетов то же, что и window.
  • window.opener и window.parent в Вашем случае одно и то же — окно, породившее данное окно.

prodigy007 01.12.2009 10:11

я случайно методом тыка отгадал ответ на вопрос
3 Как из программы, находящейся в окне, открытом следующей командой, передать фокус в родительское окно?
wid = window.open('1.htm','wname','width=300,height=300' );

+++ window.opener.focus()
+++self.opener.focus()
+++opener.focus()


А мне и требовалось ответить только на один вопрос чтобы сдать тест =)) как всегда сам сделал(((

subzey 01.12.2009 12:36

Поздравляю! Главное, не пишите скрипты на сайты методом тыка. :)

natsgoal 15.11.2010 12:22

фокус на родительскую вкладку
 
Помогите, уже не знаю как сделать..
Суть в чем по нажатию кнопки методом window.open открываю новую вкладку.
В данный момент вкладка становится сразу активной, а мне нужно получить эффект чтобы при нажатии на ссылку, открывалась новая вкладка как по нажатию на среднюю кнопку мыши.
Тоесть вкладка открывается но активной остается родительская!

rootv 13.10.2011 13:09

Наверное, я в танке?

Схема такая:
Родительская страница содержит форму.
<form method="POST" target='_blank1' action="http://www.au-to.ru/a2.html">

В обработчике только
<input type="button" value="к поиску" onClick="window.parent.focus();">

Не работает! (http://www.au-to.ru/a1.html)

Работающий пример не нашел... Подскажите!

rootv 13.10.2011 13:55

Опыт показал, что замена в дочернем окне window.parent.focus();
на window.parent.close(); - ведет к закрытию дочернего окна
на window.opener.close(); - ведет к закрытию родительского окна

window.opener.focus(); - ни какой реакции...

???
(Опера и IE. Firefox - всегда глухо)

rootv 13.10.2011 16:53

в IE7 проблема была связана с тем, что родительское окно находилось в одной из вкладок и возврат был неопределен... Если запускать из окна с одной вкладкой, то возврат работает 100%...

В Firefox даже если удается добиться, чтобы новое окно открывалось не в новой вкладке, а в новом окне - врзврат не работает...

В опере - не удалось добиться, чтобы окна находились не в разных вкладках, а отдельно...

Последний шанс - работать не с opener, а со ссылкой на окно... Но как получить в дочернем окне именно ссылку на родительское окно (а не имя окна)? Как вообще эту ссылку создать, если родительское окно открывалось не с помощью window.open()?


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