【发布时间】:2010-06-23 16:50:45
【问题描述】:
我尝试运行如下代码行:
document.getElementById('frame0').contentDocument.location.reload(true);强制 iframe 刷新或重新加载,但我在 Firefox 中收到类似“权限被拒绝”的错误。有谁知道为什么?并帮助提供解决方案?谢谢!
【问题讨论】:
标签: javascript iframe
我尝试运行如下代码行:
document.getElementById('frame0').contentDocument.location.reload(true);强制 iframe 刷新或重新加载,但我在 Firefox 中收到类似“权限被拒绝”的错误。有谁知道为什么?并帮助提供解决方案?谢谢!
【问题讨论】:
标签: javascript iframe
这可能是因为跨域问题 - 看起来您的 iframe 内容来自另一个域作为您的大型机(从中运行您的 js 代码)。 FF 对跨域的限制非常严格。
【讨论】:
由于适用于所有浏览器的Same origin policy,您无法重新加载来自不同主机名的文档。
您必须从页面中删除 iframe 并将其替换为新的:
var iframe= document.getElementById('frame0');
var newiframe= document.createElement('iframe');
newiframe.src= iframe.src;
iframe.parentNode.replaceChild(newiframe, iframe);
但是,这将加载 <iframe> 的原始 src,如果用户从那时起浏览过该页面,它将与当前位置不同。
【讨论】: