如何每隔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" alt="favicon" height="31" width="31" >
<h1>Chat</h1>
</div>
<iframe src="text.txt" name="iframe_a"> />
</body>
</html>
答案 0 :(得分:0)
只需使用几行Javascript即可完成所需。
<script>
window.setInterval("reloadIFrame();", 3000);
function reloadIFrame() {
document.frames["frameNameHere"].location.reload();
}
</script>
答案 1 :(得分:0)
你的html标签有问题。 (&#34; iframe&#34;标记格式不正确)
在这里,您已修复代码并准备好运行答案:
<!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" alt="favicon" height="31" width="31">
<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>
此致
答案 2 :(得分:0)
<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>
这个解决方案对我有用,我发现了&#39; refreshIFrame()&#39;函数作为参数输入而没有以下行中的大括号():&#34; var t = setTimeout( refreshIFrame ,3000); &#34;。只需替换相关值,就可以了。