一些浏览器无法识别通过Javascript添加的meta标签

3
我正在制作一些JavaScript示例,它们并不是真正可用的。其中一个很有趣 - 它在Chrome(和其他使用Webkit的浏览器)以及Safari上运行。那么,有人能提出任何原因,为什么它在我测试过的其他浏览器中无法工作吗?
一个可能的解释是其他浏览器在页面加载后不会读取meta标签,或者不会读取新添加的标签。
   if (document.createElement) {
   var meta = document.createElement('meta');
   var metaContent = '2; URL=http://localhost/new.html'; 
   meta.setAttribute('http-equiv', 'refresh');
   meta.setAttribute( 'content', metaContent );
   document.getElementsByTagName('head')[0].appendChild(meta);
   }

1
嗯,我想大多数浏览器在页面渲染后不会期望新的元标签。有趣。+1 - Diodeus - James MacFarlane
也许可以,但标题标签可以更改,因此浏览器期望头部部分发生一些变化。 - Bakudan
我发现有一个选项叫做“允许元刷新”,但即使启用了该脚本也无法工作。http://helpdeskgeek.com/how-to/disable-meta-refresh-ie-8/ - Bakudan
2个回答

3

在处理任何Javascript之前,大多数浏览器都会读取meta标签。您可以以编码方式注入新的meta标签,但浏览器本身不会对新标签进行任何操作。尽管如此,在注入后运行的页面上的其他代码将可以使用新的元标记。


0

Meta标签必须在页面加载时的前512个字符内。如果不是,它们将留在DOM中但不会被浏览器识别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接