2010-10-22 78 views
1

下面是我初始化的对话框:如何关闭与IFRAME一个jQuery UI的对话框

$('a.dialog').click(function(e) { 
    e.preventDefault(); 
    var $this = $(this); 
    $('<iframe id="externalSite" class="externalSite" src="/controller/action" frameBorder="0"></iframe>').dialog({ 
     modal: true, 
     resizable: false, 
     title: 'Title', 
     zIndex: 1, 
     show: 'fast', 
     hide: 'slow', 
     width: 600, 
     height: 400, 
     position: 'middle' 
    }).width(600); 
}); 

我怎样才能关闭它从iframe中?

例如,我想有iframe内的一个链接,关闭该对话框。

回答

1

您可以使用window.parentwindow.top引用父窗口。从那里开始,你应该能够用jquery找到你的对话框并关闭它。喜欢的东西

$(window.top.document).find('#externalSite').dialog('close'); 

https://developer.mozilla.org/en/DOM/window.parent

+1

或'window.top $找到( '#externalSite')对话框( '亲密');。'直接使用jQuery对象的父窗口上,万一框架中的页面不需要/需要jQuery本身。 – Pointy 2010-10-22 14:14:55

+1

这不起作用。但是这样做:$(window.top.document).find('。ui-widget-overlay,.ui-dialog')。remove(); – 2010-10-22 14:25:28

+0

@Richard我不熟悉瑞API,貌似这就是所谓的“破坏”:http://jqueryui.com/demos/dialog/#method-destroy – 2010-10-22 14:28:48