2013-09-20 3 views
0

Пробовал this мой код:Как узнать, когда загружается всплывающее окно?

var w = window.open("http://www.jsfiddle.net"); 

if (w) { 
    w.onload = function() { 
     $('#complete').html("finished"); 
    }; 
} 

, но я далеко от прицельной. Я хочу написать «закончен» в div, когда окно загружено. Как мне это сделать?

+1

Это невозможно, если он находится в другом домене. – epascarello

+0

Хорошо. Предположим, что я в том же домене! (вопрос отредактирован) – markzzz

+1

, если он не является тем же самым доменом, я не думаю, что вы можете получить завершенный обратный вызов, поскольку я думаю, что он попадет под перекрестную песочницу, если он находится в том же домене, что вы можете загрузить загружаемую страницу, выполните функцию окна, которое открыло его, используя 'window.parent.someGlobalFunctionInParent();' в событии onload –

ответ

2

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

$.ajax({ 
    url:"somepage.html", 
    success:function(html) { 
    $('#complete').html("finished"); 
    var popup = window.open(""); 
    var doc = popup.document; 
    doc.write(html); 
    } 
}); 

Хотя если страница ребенок имеет скрипты, которые зависят от OnLoad они не могут стрелять,

+0

Uhm no Я не могу этого сделать, потому что сама страница имеет некоторую переадресацию, которая может потребовать ввода пользовательских данных. – markzzz

+0

И могу ли я узнать, когда пользователь закрывает это всплывающее окно? – markzzz

+0

не уверен, есть ли обратный вызов для закрытия, вам может понадобиться снова вызов функции во всплывающем окне, но из родителя вы можете проверить 'popup.window'' popup.top' или другие '' null', поскольку они станут ' null ', когда он закрыт –

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