刷新 iframe 而不刷新整个页面

Posted

技术标签:

【中文标题】刷新 iframe 而不刷新整个页面【英文标题】:Refresh an iframe without refreshing the entire page 【发布时间】:2014-03-23 03:06:05 【问题描述】:

我有一个 iframe,我想在不刷新整个页面的情况下自动刷新它。我更喜欢使用 javascript 或 jquery。这是我一直在尝试的,但没有成功。

<div class="Widget"><!--DARK SKY-->
    <div class="WidgetHeader">
        <img src = "images/WidgetHeaders/DarkSky.png"></div>
    <div id="DarkSky" style="width: auto; height: 245px; padding: 5px; background-color: hsla(0,0%,100%,.9);">
        <iframe id="forecast_embed" type="text/html" frameborder="0"   src="http://forecast.io/embed/#lat=38.269571&lon=-85.487420&name=Louisville&units=us&color=#4c7cba"> </iframe>
    </div>   
</div>

<script type = "text/javascript">
    window.onload = function()    
        setInterval(function refreshDarkSky()   
            document.getElementById("#forecast_embed").src ="http://forecast.io/embed/#lat=38.269571&lon=-85.487420&name=Louisville&units=us&color=#4c7cba"
        , 90000);
     
</script>

【问题讨论】:

【参考方案1】:

如果 iframe 不是来自不同的域,您可以使用:

document.getElementById('forecast_embed').contentDocument.location.reload(true);

对于跨域,

var iframe = document.getElementById('forecast_embed');
iframe.src = iframe.src;

【讨论】:

【参考方案2】:

试试这个代码

$(document).ready(function () 
            setInterval(function refreshDarkSky() 
                $("#forecast_embed").attr("src","http://forecast.io/embed/#lat=38.269571&lon=-85.487420&name=Louisville&units=us&color=#4c7cba"); 
            , 90000);
        );

【讨论】:

你能提供你的html吗? 刚刚添加,很抱歉没有从一开始就添加它 重新加载内容大约需要 9 分钟。将 90000 更改为 9000 用于测试目的 是的,但它会显示天气信息。天气信息不会那么快改变。我总是在测试时给它足够的时间来刷新。【参考方案3】:

试试这个

window.top.location.reload();

【讨论】:

【参考方案4】:

使用这个:

$('#forecast_embed',window.parent.document).attr('src',
             $('#forecast_embed',window.parent.document).attr('src'));

它必须解开你的问题。

【讨论】:

以上是关于刷新 iframe 而不刷新整个页面的主要内容,如果未能解决你的问题,请参考以下文章

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

在PHP中怎么实现新增数据,刷新表格,而不刷新整个页面。

iframe 和ajax局部刷新的区别

自动刷新 IFrame HTML

提交表单而不刷新页面

提交表单而不刷新页面