asp.net – 移动ModalPopup在IFrame之外 可能?

我的主页里面有一个iframe iframe页面中有一个模式。所以当显示modalpopup时,modalpopup的父项是iframe主体和主页父体。因此,覆盖只覆盖了iframe而不是整个页面。

我尝试使用jQuery将modalpopup从iframe移动到父窗体body元素(或父体内的任何其他元素)。我得到一个无效的参数错误。

如何从iframe中的页面显示一个模式,并且它应该覆盖整个文档,父文档?

更新:

因为很少有用户对实现相同的行为感兴趣。这里是解决方法

我建议的最好的解决方法是在主页面中添加模态文件,然后从iframe中调用它。说这样的东西..

/* function in the main(parent) page */
var _onMyModalPopupHide = null;
function pageLoad(){
    // would be called by ScriptManager when page loads
    // add the callback that will be called when the modalpopup is closed
    $find('MyModalPopupBehaviorID').add_hidden(onMyModalPopupHide);
}
// will be invoked from the iframe to show the popup
function ShowMyModalPopup(callback) {
    _onMyModalPopupHide = callback;
    $find('MyModalPopupBehaviorID').show();
}
/* this function would be called when the modal popup is closed */
function onMyModalPopupHide(){
    if (typeof(_onMyModalPopupHide) === "function") {
        // fire the callback function
        _onMyModalPopupHide.call(this);
    }
}

/* functions in the page loaded in the iframe */
function ShowPopup(){
    if(typeof(window.parent.ShowMyModalPopup) === "function") {
        window.parent.ShowMyModalPopup.apply(this,[OnPopupClosed]);
    }
}
// will be invoked from the parent page .. after the popup is closed
function OnPopupClosed(){
    // do something after the modal popup is closed
}

希望它有帮助

解决方法

如果您只是使用iframe进行可滚动的内容,那么您可能会认为具有溢出的风格的div:auto或scroll。

这样的设置使得更容易修改整个页面的外观,因为您不使用每个本质上在页面内部具有自己的窗口空间的多个文档。您可以绕过一些跨框架通信,如果需要这样做,可能会更容易保持信息同步。

这可能不适用于所有情况,可能需要ajax(或使用javascript修改dom)来更改div内容,而不是仅在iframe中加载其他文档。此外,一些较旧的移动浏览器,如Android Froyo构建,不能很好地处理可滚动的div。

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....