更改元刷新的内容不会改变刷新时间
我在<head>
里有一个meta http-equiv="refresh"
。
<head>
<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta">
</head>
使用JavaScript ,我试图改变这个meta
标记的content
属性。
var myMeta = document.getElementById("myMeta");
myMeta.content="10";
当我通过document.write(myMeta.content);
显示内容时document.write(myMeta.content);
,我得到的值是10 ,但是meta
标签会每2秒钟刷新一次。
我已经在Firefox和Opera中测试了这一点。
完整页面
<!DOCTYPE html>
<html>
<head>
<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta">
<script>
var myMeta=document.getElementById("myMeta");
myMeta.content="10";
document.write(myMeta.content);
</script>
</head>
<body>
</body>
</html>
发生这种情况是因为浏览器在出现onload时立即处理<meta>
标签。
请参阅DEMO。
当文档被加载时,浏览器会看到并处理以下内容:
<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta"/>
即使您尝试将其内容从2更改为10,该2秒刷新已被确认,并且浏览器在刷新页面之前等待2秒钟。 由JavaScript注入的10秒刷新实际上工作*,尽管页面在2秒内刷新并且没有任何事情发生。 然后这个过程一次又一次地重复。
试着相反,看看会发生什么。
*这只适用于Safari和Chrome。 Firefox和Opera不支持通过JavaScript修改元刷新。
getElementsByTagName
方法返回一个NodeList
因此您需要指定一个索引以正确访问该元素:
var myMeta = document.getElementsByTagName("meta")[0];
正如有人提到,这可能仍然不起作用,因为meta
标记需要重新附加以获得所需的效果。
既然你使用JavaScript,你可以使用setTimeout
来实现相同的行为
setTimeout(function() {
location.reload();
},2000); // reload page after 2 seconds
链接地址: http://www.djcxy.com/p/71667.html
上一篇: Changing the content of meta refresh does not change refreshing time
下一篇: What is the correct way to write HTML using Javascript?