从iFrame打开模态窗口到父窗口

时间:2014-10-28 16:26:22

标签: jquery html iframe popup modal-dialog

我需要一些帮助,将iFrame中的模态添加到它的父体。我已经听说过jQuery插件SimpleModal,甚至尝试过,但都失败了。

所以我有一个带有iFrame的页面,在这个iFrame中有一个按钮,可以在父窗口中打开一个模态窗口。问题是我没有权限将代码放入父窗口。我只能访问iFrame。

对于任何形式的帮助,我都非常感谢!

3 个答案:

答案 0 :(得分:3)

没有任何示例代码,根据您的确切布局很难向您展示,但我可以举例说明我是如何实现这一目标的。请记住,一切都必须在同一个域上,我认为它是。

我必须为我开发的CRM做到这一点,这是我如何做到的一个例子:

父HTML

<body>
    <div id="myModal">stuff</div>

父JS

<script>
    $(function() {
        $('#myModal').someDialogPlug({ some: options });
    })
</script>

iFrame HTML

<button id="btnPopModal">click me</button>

iFrame JS

<script>
    $(function() {
        $('#btnPopModal').on('click', function(e) {
            //  here's the fun part, pay attention!
            var $body = $(window.frameElement).parents('body'),
                dlg = $body.find('#myModal');
            dlg.someDialogPlugin('open');
        });
    })
</script>

答案 1 :(得分:2)

让我用我的代码解释这个场景,

父HTML

<div id="CatModal" class="modal fade" role="dialog">

<div class="modal-dialog ">

    <!-- Modal content-->
    <div class="modal-content">

        <div class="modal-body">

        </div>

    </div>

</div>

iframe HTML

<button id="btnPopModal">click me</button>

iframe JS

window.parent.$('#CatModal').modal('show');

通过

更改modal-body的内容
window.parent.$('.modal-body').html('content stuff');

{{3}}

答案 2 :(得分:0)

window.parent.show_messageNew(标题,内容);

function show_messageNew(title, content)
{
    $('#myModal_Title').html(title);
    $('#myModal_Content').html(content);
    $('#myModal_Message').modal().css(
            {
                'margin-top': function () {
                    //var offss = $(this).height() - window.parent.scrollY;
                    var offss = window.parent.scrollY;
                    console.log(offss);
                    return offss;
                }
            });
    //debugger;
    $('#myModal_Message', window.parent).modal();

}