35

内部に iframe がある Twitter Bootstrap Modal を開くページ:

<div id="iframeModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="btn btn-danger pull-right" data-dismiss="modal" aria-hidden="true">Close</button>
        <div class="clearfix"></div>
    </div>
    <div class="modal-body">
        <iframe src="iframe-modal.html"></iframe> 
    </div>
    <div class="modal-footer">
    </div>
</div>

そして、iframe 内からこのモーダルを閉じる方法を探しています。元。内のリンクをクリックしiframe-modal.htmlてモーダルを閉じます。私が試したことはありますが、成功しませんでした:

$('#iframeModal', window.parent.document).modal('hide');
$('#iframeModal', top.document).modal('hide');
$('#iframeModal').modal('hide');
4

4 に答える 4

69

ブートストラップ モーダル ウィンドウを閉じる、グローバルにアクセス可能な関数をいつでも作成できます。

例えば。

window.closeModal = function(){
    $('#iframeModal').modal('hide');
};

次に、iframe から、次を使用して呼び出します。

window.parent.closeModal();
于 2013-03-06T15:23:20.637 に答える
4

idを使用するモーダルがわからない場合のもう1つの解決策iframe

関数CloseModalを追加

function CloseModal(frameElement) {
     if (frameElement) {
        var dialog = $(frameElement).closest(".modal");
        if (dialog.length > 0) {
            dialog.modal("hide");
        }
     }
}

要素コンテナframeElement参照です。iframe

そして、このパラメータは次のように渡すことができますiframe:

window.parent.CloseModal(window.frameElement);

あなたについての詳細はここでwindow.frameElement見つけることができます

于 2016-07-05T10:52:24.417 に答える