powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (DHTML + JS) window.open - как проверить открыто ли такое окно?
16 сообщений из 16, страница 1 из 1
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478102
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересует только Internet Explorer

т.е. - определили в windows.open имя окна, например, "window$1".
как далее потом по некому событию проверить - открыто ли окно
с таким именем?

плюс в догонку - если окно открыто, то каким образом его вытащить на
передний план?

PS насчет того, что это офтопик/оффорум флейма разводить не стоит.

...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478166
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>как далее потом по некому событию проверить -
>открыто ли окно с таким именем?
Метод window.open возвращает ссылку на окно. Ее существование и проверяйте. Точно сказать не могу, но проверьте, существует ли ссылка на окно, когда порожденное окно закрывается пользователем. Если существует, то проверйте существование объекта в порожденном окне.

>плюс в догонку - если окно открыто,
>то каким образом его вытащить на передний план?
В голову приходит вариант передать фокус или параметр. Утверждать не берусь.

P.S. Может есть смысл обратить внимание на модальные окна?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478170
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™плюс в догонку - если окно открыто, то каким образом его вытащить на
передний план?
c этим понятно:

Код: plaintext
1.
2.
3.
4.
<script>
  var w = window.open(...);
  w.focus();
</script>
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478176
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cМожет есть смысл обратить внимание на модальные окна?
не. это вообще никак.
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478188
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передача фокуса выводит окно на передний план?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478197
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c>как далее потом по некому событию проверить -
>открыто ли окно с таким именем?
Метод window.open возвращает ссылку на окно. Ее существование и проверяйте. Точно сказать не могу, но проверьте, существует ли ссылка на окно, когда порожденное окно закрывается пользователем. Если существует, то проверйте существование объекта в порожденном окне.
немного не то, наверное.

есть что-то типа главного окна. из него могут быть открыты типа дочерние
окна. и:
если дочернее окно уже открыто и существует, то просто дописать в это окно кое-что (типа childWindow1.document.write);

если не открыто - просто открыть :)
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478200
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cПередача фокуса выводит окно на передний план?
да, если известна ссылка на окно.
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478345
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™т.е. - определили в windows.open имя окна, например, "window$1".
как далее потом по некому событию проверить - открыто ли окно
с таким именем?
помог eval():

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...

var wndName = "wndMy_" + wndId + "_" + userId;
var evalText = wndName + ".focus();";

try {
  eval(evalText);
} catch (exception) {
  // no window with such name
  evalText = "var " + wndName + " = window.open('', '" + wndName + "', 'width=500,height=300');";
  eval(evalText);
}

...
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478363
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™
Код: plaintext
1.
2.
3.
4.
...
var wndName = "wndMy_" + wndId + "_" + userId;
var evalText = wndName + ".focus();";
eval(evalText);

только, правда, эта конструкция не работает отчего-то... т.е. окно
на передний план не выходит.
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478390
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идею доработать напильником.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<SCRIPT LANGUAGE="JavaScript">
<!--
var barr = new Array();
function f(i)
{
	if((i in barr) && (!barr[i].closed))
	{
		alert('Open!');
		return false;
	}
	else
	{
		barr[i] = window.open('test.html');
		return true;
	}
}
//-->
</SCRIPT>
<INPUT TYPE="button" onclick='f(1)'>
</BODY>
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478444
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, как я и думал. У меня не получилось явно переместить дочернее окно поверх родительского, но в панели задач честно замигало свернутое дочернее окно.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478518
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cКстати, как я и думал. У меня не получилось явно переместить дочернее окно поверх родительского, но в панели задач честно замигало свернутое дочернее окно.
----------------------------------------
Артисты не приехали, приехали цыгане
у меня eval'ом ни на передний план не вышло, ни мигало в панели задач.
помог, однако, window.execScript:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
var wndName = "wndMy_" + wndId + "_" + userId;
var evalText = "var t = " + wndName + ".name;";

 try  {
  // пробуем обратиться к одному из свойств окна
  eval(evalText);

  // получилось!
  // на передний план его
  evalText = wndName + ".focus();";
  execScript(evalText, "Javascript");
}  catch  (e) {
  // не получилось, открываем окно с таким именем
  evalText = "var " + wndName + " = window.open('', '" + wndName + "', 'width=500,height=300');";
  execScript(evalText, "Javascript");
}
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478526
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c!barr .closed
точно. про такой способ я думал, но забыл о св-ве closed.
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33478554
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заставляет мигать трею.
Как вариант - рекомендую пошерстить MSDN, возможно у MSIE есть волшебное слово, которое переместит окно поверх остальных. Но вот эта конструкция у меня честно отработала и заставила мигать задачу в панели задач.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var barr = new Array();
function f(i)
{
	if((i in barr) && (!barr[i].closed))
	{
		alert('Open!');
		barr[i].alwaysRaised();
		return false;
	}
	else
	{
		barr[i] = window.open('test.html');
		return true;
	}
}
//-->
</SCRIPT>
<INPUT TYPE="button" onclick='f(1)'>
</BODY>
P.S. Зачем так изголяться с exec? Или проблема создать ID для всех объектов, которые должны создавать дочерние окна?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33483093
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открываемому окну можно назначить имя (типа таргет). Если повторно сделать window.open с тем же именем окна, то окно перейдёт на передний план. Это в осле так.
...
Рейтинг: 0 / 0
(DHTML + JS) window.open - как проверить открыто ли такое окно?
    #33487589
paul_c0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c
P.S. Может есть смысл обратить внимание на модальные окна?

А это как?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (DHTML + JS) window.open - как проверить открыто ли такое окно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]