2010-01-27 3 views
2

Мне нужно изменить URL-адрес страницы во всплывающем окне, как только он завершит загрузку (я использую вызов функции window.open). В любом случае, я могу узнать, когда страница во всплывающем окне завершила загрузку в родительском окне? Я не могу ничего изменить на странице, которую открываю всплывающее окно, потому что оно принадлежит другому сайту.Как узнать, когда загружается URL-адрес всплывающего окна (window.open)?

ответ

4

это кажется довольно понятно, но скажите мне, если вам нужно больше объяснений (или, если он не работает, хотя он должен ...)

var winObj = window.open(/* lot of params */); 

if(!winObj) 
{ 
    /* pop-up blocked! */ 
} 
else 
{ 
    winObj.onload = function(){ /* do stuff here */ }; 
} 
+0

Можете ли вы связать события в окне даже с ограничениями одной и той же политики происхождения? –

+0

Всплывающий URL-адрес, который я открываю, находится в другом домене, поэтому я получаю ошибку, как показано ниже: Ошибка: разрешение отклонено для , чтобы установить свойство Window.onload на . – exsource

9

window.open возвращает ссылку на что функция окна window объект.

Если открытое окно указывает на URL-адрес в том же домене, что и открывающий окно, то он будет иметь полный доступ к этому объекту, так же как и собственный объект window.

var w = window.open(url); 

// If the window opened successfully (e.g: not blocked) 
if (w) { 
    w.onload = function() { 
     // Do stuff 
    }; 
} 

Здесь применяется такая же политика происхождения. Если URL-адрес открытого окна находится в другом домене, то открывающий не будет иметь доступа к элементам ссылки этого окна.

+0

+1 для того, чтобы сказать то же самое, что и я (однако вы не упомянули, что означало 'if (w)'): P –

+0

Но разве OP не сказал, что он/она не может изменить страницу? Не будет ли это перезаписывать событие onload на страницах? – toc777

+0

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

Смежные вопросы