如何用iframe关闭jQuery对话框

时间:2012-12-23 17:51:17

标签: jquery iframe

我为对话框创建了div,并在iframe内加载了div

我的问题是我无法通过aspx页面点击iframe内的按钮来关闭对话框。

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

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

为此问题感谢可行的解决方案。

3 个答案:

答案 0 :(得分:2)

谢谢你们..最后我得到了解决方案。

以下是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;
}

答案 1 :(得分:0)

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

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

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

,您的代码将是:

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

答案 2 :(得分:0)

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

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