自动刷新 IFrame HTML
Posted
技术标签:
【中文标题】自动刷新 IFrame HTML【英文标题】:Auto Refresh IFrame HTML 【发布时间】:2016-03-11 10:26:18 【问题描述】:如何在不刷新整个页面的情况下每 3 秒自动刷新一次 iframe。我使用<meta http-equiv="refresh" content="1">
,但它会显示整个页面刷新,并在每次刷新时将您置于页面顶部。我的 iframe 指向一个文本文件以读取我输入的实时消息。有没有办法做到这一点而不刷新整个页面,只刷新元素。我是 html 初学者,所以请彻底解释一下。我谷歌了很多,尝试了很多东西,到目前为止没有任何效果,我在很多浏览器中尝试。
到目前为止我的代码:
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="favicon.png" type="image/x-icon" />
<title>Chat</title>
<style>
body
margin: 0px;
h1
font-family: arial;
font-size: 100%;
iframe
width: 900px;
height: 500px;
div.top
background-color: rgba(2, 109, 8, 0.83);
height: 30px;
width: 100%;
</style>
</head>
<body>
<div class="top">
<img src="favicon.png" >
<h1>Chat</h1>
</div>
<iframe src="text.txt" name="iframe_a"> />
</body>
</html>
【问题讨论】:
你应该看看this question。 ***.com/q/86428/2517622 仍然没有帮助。做同样的事情 【参考方案1】:<head>
<script>
function refreshIFrame()
var x = document.getElementById("*Your_iframe_id*");
x.contentWindow.location.reload();
var t = setTimeout(refreshIFrame, 3000);
</script>
</head>
<body onload="refreshIFrame()">...
<iframe id="*Your_iframe_id*" src= ...></iframe>...
</body>
这个解决方案对我有用,我发现“refreshIFrame()”函数是作为参数输入的,没有大括号 () 在以下行中:“ var t = setTimeout(refreshIFrame, 3000);"。只需替换相关值即可。
【讨论】:
【参考方案2】:您的 html 标签有问题。 (“iframe”标签格式错误)
在这里,您已修复代码并准备运行答案:
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="favicon.png" type="image/x-icon" />
<title>Chat</title>
<style>
body
margin: 0px;
h1
font-family: arial;
font-size: 100%;
iframe
width: 900px;
height: 500px;
div.top
background-color: rgba(2, 109, 8, 0.83);
height: 30px;
width: 100%;
</style>
</head>
<body>
<div class="top">
<img src="favicon.png" >
<h1>Chat</h1>
</div>
<iframe id="iframe" src="text.txt"></iframe>
<script>
window.setInterval(function()
reloadIFrame()
, 3000);
function reloadIFrame()
console.log('reloading..');
document.getElementById('iframe').contentWindow.location.reload();
</script>
</body>
</html>
问候
【讨论】:
【参考方案3】:您只需使用几行 javascript 即可完成您需要的工作。
<script>
window.setInterval("reloadIFrame();", 3000);
function reloadIFrame()
document.frames["frameNameHere"].location.reload();
</script>
【讨论】:
在 Firefox、Chrome 或 IE 中不起作用。 我把它放进去,什么也没发生。 你用你的框架名替换了吗?以上是关于自动刷新 IFrame HTML的主要内容,如果未能解决你的问题,请参考以下文章