防止浏览器在重新加载父级时保留 iframe url

Posted

技术标签:

【中文标题】防止浏览器在重新加载父级时保留 iframe url【英文标题】:Prevent browser from keeping iframe url when reloading the parent 【发布时间】:2013-07-20 10:07:33 【问题描述】:

我在 iframe 中有一个表单。一旦用户保存了数据,我就将 iframe 重定向到一个页面,该页面除了重新加载主页之外什么都不做(因为其他一些内容取决于 iframe 中插入的内容)。所以 iframe 之外的数据更新了,表单应该再次出现。

问题:至少 firefox(尚未在其他浏览器中对其进行测试)将 iframe 的“新”url 与重定向页面保持在一起,而不是源代码设置的那个。类似于输入字段的自动完成。

我通过

重新加载
parent.location.reload();

有没有办法强制真正重新加载而不保留包含 iframe 历史记录的任何信息?

顺便说一句:如果有帮助,我可能会使用 jQuery。

谢谢。

【问题讨论】:

【参考方案1】:

找到了解决办法。这很有趣,但是通过

重新加载
parent.location.href = parent.location.href;

在不保留历史记录的情况下重新加载页面。不过还没有在其他浏览器中测试过。

【讨论】:

【参考方案2】:

您可以尝试以下方法 (http://jsfiddle.net/AKykZ/):

document.querySelector('button').addEventListener('click', function() 
    document.querySelector('iframe').setAttribute('src', document.querySelector('iframe').getAttribute('src'));
    window.top.location.reload();
    return false;
, false);

在小提琴中,点击 iframe 中的链接,然后点击重新加载按钮。听起来您正在从 iframe 重新加载,但这至少应该让您走上正轨。

【讨论】:

你想达到什么目的?它将 src 设置为当前 src,因此不应更改任何内容。还是我错过了什么? 如果你点击 iframe 中的链接,然后点击重新加载,它会回到原来的 src,因为它不会在 html 中更新。 嗯好的,我试试看 不幸的是没有解决它。当我提醒它时,src 是正确的(form-url),但是当重新加载完成时,iframe 仍然加载了 reload-url。这可能是一个功能:) 您可以尝试在 iframe 的加载事件触发时重新加载吗?否则,在我决定制作自己的演示之前,我没有想法...... :)

以上是关于防止浏览器在重新加载父级时保留 iframe url的主要内容,如果未能解决你的问题,请参考以下文章

如何在加载后强制 iFrame 重新加载

有啥方法可以避免在 Laravel 5.7 Eloquent 中加载父级时加载这些 $with 模型?

防止在回发时重新加载 iframe

防止 iframe 内容在 firefox 中隐藏时重新加载

Vue JS 2. 如何防止在两个父级之间导航时重新加载相同的嵌套组件?

Colorbox - 在颜色框内容中删除自定义 iframe 时防止父页面重新加载?