Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将模态窗口从iFrame打开到父窗口_Jquery_Html_Iframe_Popup_Modal Dialog - Fatal编程技术网

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

Jquery 将模态窗口从iFrame打开到父窗口,jquery,html,iframe,popup,modal-dialog,Jquery,Html,Iframe,Popup,Modal Dialog,我需要一些帮助来将一个模态从iFrame附加到它的父实体。我听说过jQuery插件,甚至尝试过,但都失败了 因此,我有一个带有iFrame的页面,在这个iFrame中有一个按钮,可以在父窗口中打开一个模式窗口。问题是我没有权限将代码放入父窗口。我只需要访问iFrame 对于任何帮助,我都非常感谢 如果没有任何示例代码,很难按照您的确切布局向您展示,但我可以给您一个示例,说明我是如何做到这一点的。请记住,所有内容都必须在同一个域上,我假设是这样的 我必须为我开发的CRM执行此操作,下面是我如何执行

我需要一些帮助来将一个模态从iFrame附加到它的父实体。我听说过jQuery插件,甚至尝试过,但都失败了

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


对于任何帮助,我都非常感谢

如果没有任何示例代码,很难按照您的确切布局向您展示,但我可以给您一个示例,说明我是如何做到这一点的。请记住,所有内容都必须在同一个域上,我假设是这样的

我必须为我开发的CRM执行此操作,下面是我如何执行此操作的示例:

父HTML

东西
父JS

$(函数(){
$('#myModal').someDialogPlug({some:options});
})
iFrame HTML
点击我
iFrame JS

$(函数(){
$('btnPopModal')。on('click',函数(e){
//有趣的是,注意!
var$body=$(window.frameElement).parents('body'),
dlg=$body.find(“#myModal”);
dlg.someDialogPlugin(“打开”);
});
})

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

父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>
<button id="btnPopModal">click me</button>
通过更改
模态体的内容

window.parent.$('.modal-body').html('content stuff');

window.parent.show_messageNew(标题、内容)


如果您没有访问父窗口的权限(跨域iframe???),则无法访问。如果可以,这将是一个重大的安全问题,我可以想象。也就是说,您可以代理服务器端的父窗口,但我很确定这不是您想要的for@A.Wolff但是,如果他在同一个域上,就像我想象的那样,在这种情况下,他可以使用
window.frameElement
。如下文所述,我必须做到这一点
<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>
<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>
<button id="btnPopModal">click me</button>
window.parent.$('#CatModal').modal('show');
window.parent.$('.modal-body').html('content stuff');
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();

}