javascript - popup jquery example пример



Как подтвердить, что окно браузера открыто, с Javascript? (2)

Нет универсального способа проверить это, поскольку каждый блокировщик всплывающих окон имеет другое поведение. Например, Opera не будет показывать всплывающее окно, но widow.closed вернет false, поскольку за сценой Opera хранит теневую копию заблокированного окна, на всякий случай, когда пользователь все равно захочет ее увидеть.

https://src-bin.com

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

Есть ли фрагмент довольно простого Javascript, который можно запустить на каждой странице, чтобы подтвердить, открыто ли другое окно браузера, а если нет, чтобы предоставить ссылку для его повторного открытия?

[пояснение:] Код для проверки - открытое окно будет запускаться на других страницах, а не только в том же окне и URL-адресе, который его открыл. Представьте, что пользователь вошел в систему, окно (пытается) открывается, а затем они просматривают в одной и той же вкладке / окне (или других) в течение некоторого времени, прежде чем закрыть второе окно (или оно никогда не открывается). Я хочу быть в состоянии чтобы заметить, что окно было закрыто через некоторое время после первоначальной попытки открытия / после его закрытия, поэтому я не уверен, что проверка возврата javascript из window.open () (с popup_window_handle.closed) легко используется или, возможно, возможна ,


Answer #1

Эта превосходная всеобъемлющая статья («Почти полный контроль над всплывающими окнами») должна отвечать на все ваши вопросы о всплывающих окнах javascript.

«JavaScript 1.1 также представил свойство закрытого окна. Используя это свойство, можно определить, было ли открыто и впоследствии закрыто окно. Мы можем использовать это для загрузки страницы непосредственно в открывающееся окно, если оно все еще открыто для включенного JavaScript 1.1 браузеры:»

<script language="JavaScript"><!--
function open_main(page) {
    window_handle = window.open(page,'main');
    return false;
}
//--></script>

<script language="JavaScript1.1"><!--
function open_main(page) {
    if (opener && !opener.closed) {
        opener.location.href = page;
    }
    else {
        window_handle = window.open(page,'main');
    }
    return false;
}
//--></script>

<a href="example.htm" onClick="return open_main('example.htm')">example.htm</a>

Дополнение: вы можете вернуть дескриптор окна на другую страницу, обратившись к имени всплывающего окна следующим образом:

window_handle = window.open(page,'myPopupName');

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





popup