Changing the content of meta refresh does not change refreshing time
I have a meta http-equiv="refresh"
inside the <head>
.
<head>
<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta">
</head>
Using Javascript , I'm trying to change the content
attribute of this meta
tag.
var myMeta = document.getElementById("myMeta");
myMeta.content="10";
When I display the content via document.write(myMeta.content);
, I get the changed value which is 10 , however, the meta
tag will keep refreshing each 2 seconds.
I have tested this both in Firefox and Opera.
FULL PAGE
<!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>
This happens because the browser immediately process the <meta>
tag when it is present onload.
See DEMO.
When the document is being loaded, the browser sees and processes the following:
<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta"/>
Even though you try to change its content from 2 to 10, that 2 second refresh is already acknowledged and the browser waits for 2 seconds before it refreshes the page. The 10-second refresh that is injected by JavaScript actually works*, although the page has been refreshed by the time it reaches 2 seconds and nothing seems to happen. This process is then repeated again and again.
Try the opposite and see what happens.
*This only works on Safari and Chrome. Firefox and Opera does not support the modification of meta refresh through JavaScript.
The getElementsByTagName
method returns a NodeList
so you need to specify an index to correctly access the element:
var myMeta = document.getElementsByTagName("meta")[0];
As someone mentioned this will probably still not work as the meta
tag will need to be re-appended to have the desired effect.
Since you're using JavaScript you can just use setTimeout
to achieve the same behavior
setTimeout(function() {
location.reload();
},2000); // reload page after 2 seconds
链接地址: http://www.djcxy.com/p/71668.html
上一篇: 使用锚标签将值传递到下一页
下一篇: 更改元刷新的内容不会改变刷新时间