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