Firefox 在页面刷新时重新发布到 iframe

Posted

技术标签:

【中文标题】Firefox 在页面刷新时重新发布到 iframe【英文标题】:Firefox re-posts to iframe on refresh of page 【发布时间】:2011-07-02 03:39:22 【问题描述】:

我正在发布到 iframe。在 Firefox 中,如果用户在 POST 之后刷新页面,浏览器会再次尝试 POST(导致出现重新发布确认)。

这只发生在 Firefox 中(我测试过 Chrome、Safari、IE8 和 7)。

我尝试在卸载时删除 iframe,并在每次页面加载时始终重新创建 iframe(使用唯一的 ID/名称)。但 Firefox 坚持 POST。

有人知道吗?

【问题讨论】:

【参考方案1】:

我有同样的问题,我发现 Firefox 加载删除了下一个 iframe 中的 iframe 位置,我把它作为最后一个 iframe 放在正文中,这样后面就没有 iframe!

为您的 iframe 设置名称并将此方法称为 body onload 以检查您的 iframe 位置:

function debugframes() 
    if(confirm("Show " + window.frames.length + " iframes?"))
        for(var f = 0; f < window.frames.length; f++)
            alert(window.frames[f].name + "/" + window.frames[f].location);
        
    

我还在寻找更好的方法来解决这个问题,如果我找到了,我会发布。

编辑:您也可以在重新加载页面之前执行document.getElementById("iframe-id").src = "";(不删除 iframe)。

【讨论】:

【参考方案2】:

当您刷新时,Firefox 会尝试刷新所有框架中的当前页面,而不是将它们设置回原来的页面。

一旦你发布到框架中,你能不能不将另一个文档加载到框架中,从而替换发布的文档?或者也许只在需要发布到框架时才创建框架。

【讨论】:

以上是关于Firefox 在页面刷新时重新发布到 iframe的主要内容,如果未能解决你的问题,请参考以下文章

如何重新刷新iframe层不刷新父页面

iframe框架刷新问题返回初始化页面

如何从父文档中捕获 iframe 内部的刷新?

ie上iframe操作时闪烁的问题,重新加载的问题

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

调整 iframe 大小时,如何防止 swf 刷新?