【问题标题】:Refresh an iframe without losing it's text/flickering刷新 iframe 而不会丢失其文本/闪烁
【发布时间】:2013-06-11 18:37:06
【问题描述】:

我经营着一个广播网站,我正在努力使其内容(广播信息)自动刷新。

目前刷新很丑。

我希望它保留无线电信息的 iframe 的内容,直到完成刷新。

这是我的代码: 带有 iframe 的内容的 PHP:http://pastebin.com/fwBjMEUs

要刷新的 Radio Info 的 PHP:http://pastebin.com/XyfhG8Kn

【问题讨论】:

  • 不要使用 iframe,有更好的选择。
  • 我该如何添加呢?我不知道更好的选择。
  • 我已经编辑了我的答案,所以这对你来说几乎是一个复制和粘贴工作。让我知道它是否有效?

标签: php iframe refresh flicker


【解决方案1】:

为此,您最好使用 AJAX。这使用 div 而不是 iFrame 作为容器。只需确保 PHP 文件仅在 div 中输出您想要的 HTML,然后将此脚本添加到您要在其上显示的页面:

<script>
function refreshinfo(){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("currentinfo").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://www.x86cam.com/wp-content/plugins/radio-info.php",true);
xmlhttp.send();
}
setInterval(refreshinfo, 20000); /*How often to refresh in ms; currently 20 secs */
</script>

然后将您的 iframe 替换为 &lt;div id="currentinfo"&gt;&lt;/div&gt;,您应该一切就绪!

编辑: 我已经检查了您提取信息的 php 页面,您需要做的就是删除我认为的 &lt;centre&gt;&lt;/centre&gt; 标记,但它可能会留在里面!

【讨论】:

  • 嘿,我刚把它放进去,但它没有出现,然后 20 秒后,它出现了。帮忙?
  • 我很抱歉!将 setTimeout 更改为 setInterval,应该对其进行排序:) 我将编辑我的答案
  • 既然是广播电台,20秒也可能是等待刷新的较长时间,5秒(5000毫秒)可能更合适一些,但这只是一个建议:)跨度>
  • 另外我现在在国外,如果还没有解决您的问题,我可能会回复慢一点!但是我有马路对面酒店的WiFi,所以我会尽量留意堆栈! ;D
  • 如果我的回答有效,或者如果它没有让我知道,我会尽力帮助解决它!
猜你喜欢
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 2012-10-30
相关资源
最近更新 更多