jQuery, как закрыть диалог из iframe внутри диалога? - PullRequest
14 голосов
/ 26 августа 2010

Если я открою диалоговое окно примерно так:

$('<iframe id="externalSite" class="externalSite" src="http://www.example.com" />').dialog({
        autoOpen: true,
        width: 800,
        height: 500,
        modal: true,
        resizable: true
    })

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

Ответы [ 3 ]

24 голосов
/ 26 августа 2010

ОК, поэтому я поместил iframe на страницу с установленным значением none. Я открываю это так:

$('#externalSite').dialog({ ... });

в главном родительском окне у меня есть такая функция:

function closeIframe()
{
    $('#externalSite').dialog('close');
    return false;
}

Изнутри фрейма я звоню:

window.parent.closeIframe();
6 голосов
/ 03 сентября 2010

Мне просто позвонили по следующему номеру:

window.parent $ ( '# externalSite') диалог ( 'закрыть'). *. * 1003

0 голосов
/ 26 августа 2010

Вы пробовали это?:

$(window.parent).dialog('close');

Я никогда не использовал диалоговое окно jQuery UI, поэтому я не уверен, что это действительно сработает. Мне кажется, что вам нужно сохранить ссылку на диалог, который вы создали, чтобы вы могли использовать его для закрытия диалога.

Обратите внимание, вы также можете искать элементы в DOM родителя по:

$('#someParentDOMElement' , window.parent);

Конечно, все это предполагает, что сайт, который вы загружаете в iframe, находится в том же домене, что и родительский документ. Если нет, то документ в вашем iframe вообще не будет иметь доступа к родительскому DOM.

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