首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个对话框的具有jQuery位置的iFrame UI对话框

具有多个对话框的具有jQuery位置的iFrame UI对话框
EN

Stack Overflow用户
提问于 2013-08-14 12:56:58
回答 1查看 1.4K关注 0票数 1

使用jQuery模式对话框。

我有一个链接,点击它,我必须在一个modal.This页面中加载一个页面,它有一些特定于页面的javascript,并且具有相同的名称,在许多控件的父页面中使用id。

决定使用iFrame以模态方式加载页面,以避免id冲突。

Parent.html

代码语言:javascript
复制
<h3>
 Modal Inside Modal Sample</h3>

 <a href="javascript:void(0);" id="lnkPopup">Open Main Modal</a>
    <br />
    <input id="txt-first-name" name="FirstName" type="text" value="" />
    <br />
    <input id="txt-last-name" name="LastName" type="text" value="" />

这是javascript代码

代码语言:javascript
复制
$(document).ready(function () {

            $('#lnkPopup').click(function (e) {
                e.preventDefault();
                openModalPopup();
            });
        });

        var myModalDialog;

        function openModalPopup() {
            myModalDialog = null;


            var pageUrl = 'popup.html';
            var dialogFrame = $('<iframe src="' + pageUrl + '" frameborder="0" scrolling="no"></iframe>');

            myModalDialog = dialogFrame.dialog({
                modal: true,

                resizable: false,

                draggable: false,

                autoOpen: true,

                position: "fixed",

                closeOnEscape: true,

                height: 500,

                width: 764,

                open: function () {
                    var scrollPosition = [self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop];
                    var html = jQuery('html'); // it would make more sense to apply this to body, but IE7 won't have that       
                    html.data('scroll-position', scrollPosition);
                    html.data('previous-overflow', html.css('overflow'));
                    html.css('overflow', 'hidden');
                    window.scrollTo(scrollPosition[0], scrollPosition[1]);
                    dialogFrame.css('width', '700px');
                    dialogFrame.css('overflow-y', 'hidden');
                },
                close: function () {
                    var html = jQuery('html');
                    var scrollPosition = html.data('scroll-position');
                    html.css('overflow', html.data('previous-overflow'));
                    window.scrollTo(scrollPosition[0], scrollPosition[1]);
                    $(this).dialog('destroy').remove();

                }
            }).dialog('open');

            return false;
        }

注意:,最重要的是弹出页面也有链接,并在单击时以模式打开。打开一个模态内部模态和两个模态url是相同的。

弹出(popup.html)和父页面(parent.html)都包含相同的/JS内容。

问题是对齐问题。它的定位不是很好。我试图篡改我的问题,但我不知道如何创建两个html文件并将它们链接起来。试用版小提琴

请帮我解决这个模态对齐问题。每个模态都应该准确地位于我们打开的其他模态的顶部。

EN

回答 1

Stack Overflow用户

发布于 2013-08-14 16:40:59

您必须在主窗口中创建一个函数来打开这些对话框。然后,对话框中的每个链接都应该通过调用window.parent.your_function_name()调用该函数(从主窗口)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18232376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档