Каков наиболее совместимый способ закрыть дочернее окно и уведомить его родительское окно в JavaScript? - PullRequest
0 голосов
/ 09 июля 2009

Я думаю, что мой заголовок был достаточно информативным. :)

Я закрываю дочернее окно следующим образом:

self.close(); 

Непосредственно перед этим я хочу, чтобы родительское окно знало, что ребенок закрыт. Я использую это:

window.opener.startLoad(); 

Вышеприведенное запустит функцию, которая находится в родительском окне и должна запускаться при закрытии дочернего окна.

Однако это привело к тому, что я получил ошибку:

Permission denied to get property Window.startLoad
window.opener.startLoad();

Даже если бы я мог исправить эту ошибку, мне сказали, что это может быть связано с тем, что файл JavaScript находится в другой папке и поэтому рассматривается как другой домен. Будет ли это работать во всех браузерах? Если нет, то существует ли более безопасное решение, которое эффективно и совместимо во всех браузерах?

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 10 июля 2009

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

if (window.opener && window.opener.startLoad)
{
    window.opener.startLoad();
}
0 голосов
/ 10 июля 2009

На некоторых из моих тестовых страниц Javascript при использовании его в IE выдает ошибку локально, но загрузка файла в Интернет и открытие его оттуда работает.Возможно, у вас есть какой-то странный параметр безопасности, который не позволяет вам отправлять запросы на один и тот же «домен» при запуске из локального файла.Попробуйте разместить страницы на веб-хостинге и посмотрите, работает ли это.

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