如果我这样打开一个对话框:
$('<iframe id="externalSite" class="externalSite" src="http://www.example.com" />').dialog({
autoOpen: true,
width: 800,
height: 500,
modal: true,
resizable: true
})
如何在iframe内部关闭对话框?
如果我这样打开一个对话框:
$('<iframe id="externalSite" class="externalSite" src="http://www.example.com" />').dialog({
autoOpen: true,
width: 800,
height: 500,
modal: true,
resizable: true
})
如何在iframe内部关闭对话框?
好的,所以我将iframe放在页面上,并将其显示设置为none。我这样打开它:
$('#externalSite').dialog({ ... });
在主父窗口上,我有一个像这样的函数:
function closeIframe()
{
$('#externalSite').dialog('close');
return false;
}
从iframe内部调用:window.parent.closeIframe();
你试过这个吗?:
$(window.parent).dialog('close');
我从未使用过jQuery UI对话框,所以我不确定它是否有效。在我看来,您需要保留对创建的对话框的引用,以便可以使用它来关闭对话框。
请注意,您还可以通过以下方式在父DOM中查找元素:
$('#someParentDOMElement' , window.parent);
iframe
中的站点与父文档在同一个域上。如果不是,则位于iframe
中的文档将完全无法访问父DOM。$(window.parent).dialog('close');
,但它没有起作用。不过我采纳了你提供的保持引用的方法,并在我的答案中使用了它。谢谢。 - JD Isaacks$(window.parent).dialog('close')
不起作用,因为 window.parent
指的是父级 JavaScript Window 对象,而不是 jQuery UI 对话框元素。 - cdmckay
window.parent.function()
,但不确定如何将其定位到此对话框以关闭它。 - JD Isaacks