このようなダイアログを開くと:
$('<iframe id="externalSite" class="externalSite" src="http://www.example.com" />').dialog({
autoOpen: true,
width: 800,
height: 500,
modal: true,
resizable: true
})
Iframeを使用せずにダイアログを閉じるにはどうすればよいですか?
OK、ディスプレイをなしに設定してページにiframeを配置しました。私はそれをこのように開きます:
$('#externalSite').dialog({ ... });
メインの親ウィンドウには、次のような関数があります。
function closeIframe()
{
$('#externalSite').dialog('close');
return false;
}
私が呼び出すiframe内から:
window.parent.closeIframe();
次のように呼ぶだけでうまくいきました。
window.parent。$( '#externalSite')。dialog( 'close');
これを試しましたか?:
$(window.parent).dialog('close');
JQuery UIダイアログを使用したことがないので、実際に機能するかどうかはわかりません。ダイアログを閉じるために使用できるように、作成したダイアログへの参照を維持する必要があるように思われます。
次の方法で、親のDOM内の要素を検索することもできます。
$('#someParentDOMElement' , window.parent);
もちろん、これはすべて、iframe
内にロードするサイトが親ドキュメントと同じドメインにあることを前提としています。そうでない場合、iframe
内のドキュメントは親DOMにまったくアクセスできません。