更改元刷新的内容不会更改刷新时间

Ali*_*sam 2 html javascript meta meta-tags

我有一个meta http-equiv="refresh"里面<head>

<head>
     <meta name="mymeta" http-equiv="refresh" content="2" id="myMeta">
</head>
Run Code Online (Sandbox Code Playgroud)

使用Javascript,我试图更改contentmeta标记的属性。

var myMeta = document.getElementById("myMeta");
myMeta.content="10";
Run Code Online (Sandbox Code Playgroud)

通过显示内容时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>
Run Code Online (Sandbox Code Playgroud)

Ant*_*ony 5

发生这种情况是因为浏览器<meta>在加载标签时会立即处理该标签。

参见DEMO

加载文档时,浏览器将查看并处理以下内容:

<meta name="mymeta" http-equiv="refresh" content="2" id="myMeta"/>
Run Code Online (Sandbox Code Playgroud)

即使您尝试将其内容从2更改为10,也已经确认2秒钟的刷新,并且浏览器在刷新页面之前要等待2秒钟。JavaScript注入的10秒刷新实际上是有效的*,尽管页面达到2秒时已经刷新,而且似乎什么也没有发生。然后一次又一次地重复该过程。

尝试相反的做法,看看会发生什么。

*这仅适用于Safari和Chrome。Firefox和Opera不支持通过JavaScript修改元刷新。