javascript дочернее окно, перенаправляющее главное окно - PullRequest
3 голосов
/ 16 марта 2012

main.php имеет

<a href="redirect.php" target="_blank">open new window</a>

, тогда redirect.php имеет

top.top.location.href='http://xx.com/index.html';

Когда я нажимаю на ссылку, открывается новое окно, redirect.php открывается в новом окне и перенаправляет http://xx.com/index.html. Проблема здесь: на этой странице код JavaScript, заставляющий закрыть это новое окно и перенаправить главное окно на http://xx.com/index.html.

код JavaScript http://xx.com/index.html имеет:

try{
        if(opener) {
            opener.location.href=this.location.href;
            top.close();
        }
    }

Как я могу предотвратить закрытие главной страницы дочерним окном?

Это живой пример

1 Ответ

0 голосов
/ 17 марта 2012

В вашем коде (http://xx.com/index.html)

try{
    if(opener) {
        opener.location.href=this.location.href; // Line-1
        top.close(); // Line-2
    }
}

1. Line-1 перенаправляет открыватель (родительское / главное окно), не закрывая его, свойство opener возвращает ссылку на окно, открывшее окно, поэтому, если вы удалите строку-1, она больше не будет перенаправлена.

2. Строка-2 закрывает текущий ( само дочернее окно ссылается на верхнее ) окно, поэтому если вы удалите эту строку, она больше не будет закрыта.

Просто удалите весь блок try, ваша проблема будет решена, и я запуталсяпочему вы не удалили эти строки самостоятельно, потому что знали, что эти коды отвечают за проблему, описанную в вашем вопросе.

...