【问题标题】:Firefox re-posts to iframe on refresh of pageFirefox 在页面刷新时重新发布到 iframe
【发布时间】:2011-07-02 03:39:22
【问题描述】:
我正在发布到 iframe。在 Firefox 中,如果用户在 POST 之后刷新页面,浏览器会再次尝试 POST(导致出现重新发布确认)。
这只发生在 Firefox 中(我测试过 Chrome、Safari、IE8 和 7)。
我尝试在卸载时删除 iframe,并在每次页面加载时始终重新创建 iframe(使用唯一的 ID/名称)。但 Firefox 坚持 POST。
有人知道吗?
【问题讨论】:
标签:
firefox
forms
post
iframe
refresh
【解决方案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 会尝试刷新所有框架中的当前页面,而不是将它们设置回原来的页面。
一旦你发布到框架中,你能不能不将另一个文档加载到框架中,从而替换发布的文档?或者也许只在需要发布到框架时才创建框架。