【问题标题】:How to close jQuery dialog box with Iframe如何使用 iframe 关闭 jQuery 对话框
【发布时间】:2012-12-24 15:22:16
【问题描述】:

我为对话框创建了一个div,并在div 中加载了一个iframe

我的问题是我无法通过单击带有 aspx 页面的 iframe 中的按钮来关闭对话框。

我尝试了下面的代码。如果我将iframe 直接用作对话框而不是div,它会起作用,但它会为调整大小/拖动对话框和iframe 带来其他问题。

window.parent.$('#divdialog').dialog('close');

欣赏此问题的可行解决方案。

【问题讨论】:

    标签: jquery iframe


    【解决方案1】:

    谢谢大家。。终于找到解决办法了。

    这是iframe中使用的代码:-

    window.parent.CloseDialog();

    这是父页面中使用的代码:-

    var divdialog = $('#divdialog'); divdialog.dialog('destroy');
            divdialog.dialog({
                autoOpen: true,
                height: 310,
                width: 570,title: "Look Up",
                modal: true,
                open: function () {$('#testframe').attr("src", strValue);
                $('#testframe').height($(this).height()-5);       $('#testframe').width($(this).width()-10);         
                    },
                close: function (e) {
                    $('#divdialog').remove();
                    },
                resizable: true,
                resize: function() { $('#divdialog iframe').hide(); },
                resizeStop: function() { $('#divdialog iframe').show(); 
                $('#divdialog iframe').height($(this).height()-10);  
                $('#divdialog iframe').width($(this).width()-10); } ,
                closeOnEscape:true,
                draggable:true
            })
    
    function CloseDialog()
    {
        $('#divdialog').dialog('close'); return false;
    }
    

    【讨论】:

      【解决方案2】:

      当您尝试从 iframe 代码访问主页上的元素时,您需要在选择器上使用 window.top.document

      jQuery("#ElementID", window.top.document)
      

      使用该参数,选择器将搜索包含 iframe 的页面,因此您可以关闭对话框。

      您的代码将是:

      $('#divdialog', window.top.document).dialog('close');
      

      【讨论】:

      • window.top.document 如果我使用 iframe 作为对话框可以正常工作,因为我在这里使用 div 作为对话框我只得到 iframe 元素。还有其他想法吗?
      • @Sush 我不关注你。你能告诉我:javascript在哪里运行,对话框在哪里?
      • 感谢您的回复。我得到了解决方案并在此处发布了答案。
      【解决方案3】:

      我建议你在对话框中添加一些按钮。

      $( ".selector" ).dialog({ 
      buttons: [ { text: "Ok", click: function() { $( this ).dialog( "close" ); } ] 
      });
      

      【讨论】:

      • 感谢您的解决方案。我认为这会起作用,但我需要从 iframe 中加载的页面关闭对话框。
      猜你喜欢
      • 2011-04-04
      • 2016-05-12
      • 2011-05-22
      • 2014-07-11
      • 2011-09-15
      • 2012-02-16
      • 2012-12-13
      • 1970-01-01
      • 2011-02-25
      相关资源
      最近更新 更多