对话框模式关闭时刷新Iframe

Refresh Iframe when the Dialog modal Closes

本文关键字:刷新 Iframe 模式 对话框      更新时间:2023-09-26

我是Jquery Dialogs和Iframe的新手,我只想询问对话框模式关闭时是否可以刷新静态Iframe。

以下是静态Iframe:

                    <iframe id="frameUserInfo" src="/User/UserInfo" style="border: none; width: 100%;
                        min-height: 220px;"></iframe>
                </div>

这是我的Jquery对话框

$("#dialogAddPhone").dialog({
            autoOpen: false,
            resizable: false,
            modal: true,
            width: 700,
            height: 700,
            position: ['center', 40],
            close: function (event, ui) {
                $('#dialogAddPhone').attr('src', '');
            }
        });

我尝试添加此$('#frameUserInfo').reload(true);,但它不工作

只是想给你一个更好的画面,在我的父窗口中,有一个静态Iframe,它包含一个打开$("#dialogAddPhone")的按钮,点击事件在/User/UserInfo 上被调用

这个在父窗口中:

<div id="dialogAddPhone" title="Document Upload" style="overflow-y: hidden;">
    <iframe id="myIframeAddPhone" src="" style="border: none; width: 100%; height: 100%;">
    </iframe>
</div>

那么这就是User/UserInfo 中静态IFrame中的Open Event

loadIframe('myIframeAddPhone', href);
 parent.$("#dialogAddPhone").dialog("open");
 return false;

然后在关闭对话框后,它应该只刷新frameUserInfo 的Iframe

谢谢!:)

您可以使用以下内容:

第一种方法

$("#dialogAddPhone").dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width: 700,
        height: 700,
        position: ['center', 40],
        close: function (event, ui) {
            $('#dialogAddPhone').attr('src', '');
            document.getElementById('frameUserInfo').contentWindow.location.reload(); //Reloads the Iframe
        }
    });

第二种方法

再次设置iframe的来源。它将刷新iframe。

$("#dialogAddPhone").dialog({
    autoOpen: false,
    resizable: false,
    modal: true,
    width: 700,
    height: 700,
    position: ['center', 40],
    close: function (event, ui) {
        $('#dialogAddPhone').attr('src', '');
        var iframe = document.getElementById('frameUserInfo');
        iframe.src = iframe.src;//Reloads the Iframe
    }
});

第一种方法在Chrome中不起作用,因为没有contentWindow属性。所以你应该采用第二种方法。

下面是使用第二种方法的相同演示。

试试这个:

$( '#frameUserInfo' ).attr( 'src', function ( i, val ) { return val; });

链接:https://stackoverflow.com/a/4249946/2848607