Закрыть родительское окно в FireFox - PullRequest
1 голос
/ 05 декабря 2008

Возможно ли закрыть родительское окно в Firefox 2.0 с помощью JavaScript. У меня есть родительская страница, которая открывает другое окно, мне нужно закрыть родительское окно, скажем, через 10 секунд. Я попытался настроить Firefox "dom.allow_scripts_to_close_windows", попытался задержать, но ничего не работает.

Любая помощь будет по достоинству оценена.

Спасибо

Ответы [ 3 ]

5 голосов
/ 05 декабря 2008

Использование только открывающего объекта может не всегда закрывать родительское окно из соображений безопасности. Что вы можете сделать, это:

У родителя есть функция с именем closeWindowFromChild ():

function closeWindowFromChild()
{
    this.window.close();
}

На ребенка, когда вы хотите закрыть окно:

function closeParentWindow()
{
    opener.closeWindowFromChild();
}

И это должно работать нормально. : -D

3 голосов
/ 05 декабря 2008

Scissored от quirksmode (РЕДАКТИРОВАТЬ: добавил немного контекста, как предложил Диодей):

Теоретически

opener.close()

должен быть код из всплывающего окна: закройте окно, открывшее это всплывающее окно.

Однако в некоторых браузерах нельзя автоматически закрывать окна, которые не были открыты JavaScript. Вышеприведенная строка отлично работает в Explorer на Mac, Mozilla, Opera и OmniWeb, но не в Explorer на Windows, Netscape 4 и ниже и iCab. В этих браузерах пользователю предлагается подтвердить закрытие окна. Что касается Safari, он абсолютно ничего не делает.

Скорее, к моему удивлению, обойти это поле подтверждения в Explorer 5.5 и 6 в Windows очень легко. Explorer просто смотрит, есть ли у страницы открывашка. Если это не так, окно было открыто пользователем и не может быть закрыто без подтверждения. Итак, нам нужно заставить Обозревателя думать, что у открывающей страницы есть открыватель:

opener.opener = top; // or whatever, as long as opener.opener has a value;
opener.close()

Этот прием не работает в Netscape 4 и ниже и в iCab, у этих браузеров есть более изощренные способы определения, было ли окно открыто JavaScript.

2 голосов
/ 05 декабря 2008

Как правило, вы не можете закрыть окно, которое вы сами не открывали с помощью javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...