更改元刷新的内容不会改变刷新时间
我有一个meta http-equiv="refresh"
内<head>
。更改元刷新的内容不会改变刷新时间
<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);
的内容,我得到的改变后的值,它是10 ,然而,meta
标签将不断刷新每个秒。
我已经在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>
这是因为浏览器立即处理<meta>
标签时,它存在的onload。
请参阅DEMO。
当正在加载的文件,浏览器看到和处理以下事项:
<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta"/>
即使你试图改变其含量为2至10,即2第二刷新已经承认,浏览器等待刷新页面前2秒钟。由JavaScript注入的10秒刷新实际上工作*,尽管页面在2秒内刷新并且没有任何事情发生。然后这个过程一次又一次地重复。
尝试opposite,看看会发生什么。
*这只适用于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
没错,但我仍然面临同样的问题,刷新时间不会改变。 – 2013-02-09 16:25:00
我觉得'meta'标签只有在加载页面时才会“执行”。之后添加/删除/更改它们将被忽略。 – Teemu 2013-02-09 16:29:45
下面的页面解释了4个方法中的每一个,**设置或返回.. **,但是我不知道为什么刷新时间不会改变,即使'内容'正在改变。 http://www.w3schools.com/jsref/dom_obj_meta.asp – 2013-02-09 16:34:20
这很容易测试,只需以编程方式删除整个标签,并且您会发现,如果您的页面仍然有定时刷新。 – Teemu 2013-02-09 16:40:27