【发布时间】:2011-07-21 16:52:28
【问题描述】:
是否可以在页面更改时刷新 iframe? (iframe 中的页面 - 不是 iframe 所在的页面)我想让 iframe 显示正在开发的页面,然后每当页面更改/更新时,我希望 iframe 刷新,以便显示较新的版本。希望这是有道理的。 :P
或者使用其他东西而不是 iframe 会更好吗? iframe 现在过时了吗?
【问题讨论】:
是否可以在页面更改时刷新 iframe? (iframe 中的页面 - 不是 iframe 所在的页面)我想让 iframe 显示正在开发的页面,然后每当页面更改/更新时,我希望 iframe 刷新,以便显示较新的版本。希望这是有道理的。 :P
或者使用其他东西而不是 iframe 会更好吗? iframe 现在过时了吗?
【问题讨论】:
只是因为我觉得这很有趣……使用 jQuery:
<iframe id="someiFrame"></iframe>
<script type="text/javascript">
var page = '/some/page/on/this/server.html', lM;
function checkModified(){
$.get(page, function(a,a,x){
var mod = x.getResponseHeader('last-modified');
if(lM != mod){
lM = mod;
$('#someiFrame').attr('src', page);
}
}
}
setInterval(checkModified, 5000); // every 5 seconds
</script>
这将每 5 秒轮询一次页面(非常浪费,但如果它在本地开发机器上,那又如何?)并且仅在页面更新时重新加载 iframe :)
请注意,iFrame 必须与父页面位于同一域中。
【讨论】:
您是否有权访问正在修改的页面?如果是这样,为什么不向页面的 HEAD 添加一个刷新元标记,然后它会以您设置的任何时间间隔更新您的 iframe。以下标签会产生 5 分钟的刷新,如果您的 iframe 是跨域的,则无关紧要:
<meta http-equiv="refresh" content="300" />
【讨论】: