【问题标题】:Ajax iFrame reload using jquery使用 jquery 重新加载 Ajax iFrame
【发布时间】:2014-01-11 22:51:01
【问题描述】:

我有两个选项卡,每个选项卡默认显示为“更新条目”,每个选项卡内部都有一个 iFrame。

<div id="tabContainer">
<div class="tabWrapper">
    <a class=active id=iEntrylist onClick="return showMenu('Entrylist','iEntrylist')" href="javascript:">Entry List</a>
    <a class=nonactive id=iAddList onClick="return showMenu('AddList','iAddList')" href="javascript:">Open Deals</a>
</div>
</div>

<!-- LIST SECTION -->
<div class="tabDiv" id="Entrylist">
 <iframe src="../include/EntryList.php" frameborder="0" scrolling="yes" id="_iframe2" width="100%"></iframe>
</div>

<!-- ADD LIST SECTION -->
<div class="tabDiv" id="AddList" style="display: none;">
<iframe src="../include/AddList.php" frameborder="0" scrolling="yes" id="_iframe2" width="100%"></iframe>
</div>

现在,一旦更新按钮单击包含条目列表的 iframe1,从更新条目选项卡将重新加载。我在下面有我的代码,但它不起作用。更新有效,但重新加载 iFrame 无效。

<script>
$(document).ready(function () {
    $(".updateBTN").click(function () {
        var data = $(this).attr('id');
        //alert (data);
        $.ajax({
            type: "POST",
            url: "../update.php",
            data: {
                'id': data
            }
        }).done(function (msg) {
            $("#notification").html(msg);
            window.setTimeout(function () {
                parent.document.getElementById('iframe1').location.reload()
            }, 500);
        });
    });
});
</script>

【问题讨论】:

    标签: javascript jquery ajax iframe reload


    【解决方案1】:

    尝试在点击的末尾放上return false。有些是这样的:

        $(document).ready(function () {
            $(".updateBTN").click(function () {
                var data = $(this).attr('id');
                //alert (data);
                $.ajax({
                    type: "POST",
                    url: "../update.php",
                    data: {
                        'id': data
                    }
                }).done(function (msg) {
                    $("#notification").html(msg);
                    window.setTimeout(function () {
                        parent.document.getElementById('iframe1').location.reload()
                    }, 500);
                });
    
                return false;
            });
        });
    

    【讨论】:

      【解决方案2】:

      您必须使用contentWindow 来选择 iFrame 窗口。

      parent.document.getElementById('iframe1').contentWindow.location.reload()
      

      【讨论】:

      • 您是否在数据库中设置了更新后的值?这可能是后端问题。当您手动刷新所有内容时,这些值是从更新中设置的吗?
      • 我正在成功获取更新。是的,我必须手动刷新页面才能看到更新。
      • 您的控制台中是否出现任何 JavaScript 错误?我会在你的href标签中javascript:之后添加分号。
      • iframes 的 ID 相同。将它们更改为唯一 ID。
      【解决方案3】:

      使用这个:

      $('#iframe1',window.parent.document).attr('src',$('#iframe1',window.parent.document).attr('src'));
      

      【讨论】:

        猜你喜欢
        • 2011-05-14
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        • 1970-01-01
        • 2013-06-22
        • 2011-04-18
        • 2015-11-28
        • 1970-01-01
        相关资源
        最近更新 更多