Событие на стороне клиента, когда дочернее окно меняет родительское местоположение?

Итак, вот сделка:

В настоящее время у нас есть страница, которая вызывает всплывающее окно, и в этом всплывающем окне есть ссылка, которая перенаправляет родительскую страницу в другое место. Это все работает просто отлично.

ТЕКУЩЕЕ: СТРАНИЦА ПРОДУКТА ‹--> POPUP

Однако я создаю новую функцию, в которой главная страница вызывает новое дочернее окно для получения сведений о продукте. На этой странице сведений о продукте есть ссылка на вышеупомянутое всплывающее окно. Проблема в том, что всплывающее окно теперь видит дочернее окно своим родителем, и перенаправление происходит там, а не в главном окне браузера.

РАЗРАБОТКА: ГЛАВНЫЙ САЙТ --> ПОДРОБНАЯ ИНФОРМАЦИЯ О ПРОДУКТЕ ‹--> POPUP

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

ТИА

Кевин

РЕДАКТИРОВАТЬ: Нашел это:

http://www.bennadel.com/blog/1520-Binding-Events-To-Non-DOM-Objects-With-jQuery.htm

Но это просто уведомляет вас после изменения местоположения...


person klkitchens    schedule 13.05.2009    source источник


Ответы (1)


Вот что я в итоге сделал...

function smartRedirect(newlocation)
{
    if (window.opener == window.opener.parent)
    {
        // main window opened us...
        window.opener.location.href = newlocation;
    }
    else
    {
        // must have been a child window... so change parent, then close this one...
        window.opener.parent.location.href = newlocation;

        // this is needed because when the child window/frame is killed,
        // window.opener becomes null.
        self.close();
    }
}
person klkitchens    schedule 13.05.2009
comment
Я также сталкиваюсь с той же проблемой, но это не работает в хроме. - person Govind Malviya; 24.09.2011