如何在 JavaScript 中添加元标记

IT技术 javascript meta-tags
2021-01-18 19:13:46

我想<meta http-equiv="X-UA-Compatible" content="IE=edge">为特定页面添加

但是我的页面是在一个HTML标签内呈现的单击不同的模板时,只有内容会发生变化。所以我不能添加<meta>in<HEAD>部分。

有没有办法添加<meta http-equiv="X-UA-Compatible" content="IE=edge">using javascript

5个回答

你可以添加它:

var meta = document.createElement('meta');
meta.httpEquiv = "X-UA-Compatible";
meta.content = "IE=edge";
document.getElementsByTagName('head')[0].appendChild(meta);

...但如果在运行时浏览器已经决定如何呈现页面,我不会感到惊讶。

这里真正的答案必须是首先从服务器输出正确的标签。(遗憾的是,如果您需要支持 IE,您不能没有标签。:-|)

@marcellothearcane - 如果您的浏览器支持,是的。我认为所有现代人都这样做。
2021-03-19 19:13:46
我已经能够迫使怪癖,而不是IE 7的标准,通过使用替换整个文档内容document.write也许有一种方法可以在 IE8 中创建一个新的文档对象并将当前文档替换为新的文档,这有望触发对文档模式的重新评估。createDocument函数在 IE8 中不可用,但我想我们可以依靠 aniframe来创建一个新的文档实例。
2021-03-20 19:13:46
IE 很烂。在 IE 中没有使用这个,因为一旦页面渲染开始,n 事情就被指定了或者发生了冲突,IE 会支持死人,即 IE7。
2021-04-07 19:13:46
我可以确认动态添加元标记在 IE8 中不起作用。
2021-04-09 19:13:46
我可以用document.head.appendChild()吗?
2021-04-11 19:13:46
$('head').append('<meta http-equiv="X-UA-Compatible" content="IE=Edge" />');

或者

var meta = document.createElement('meta');
meta.httpEquiv = "X-UA-Compatible";
meta.content = "IE=edge";
document.getElementsByTagName('head')[0].appendChild(meta);

虽然我不确定它会产生影响,因为它会在页面加载后生成

如果要为页面描述添加元数据标签,请使用 DNN 页面的设置来添加描述和关键字。除此之外,修改 HEAD 的最佳方法是通过第三方module将代码动态注入 HEAD。

位于http://www.dotnetnuke.com/Resources/Forums/forumid/7/threadid/298385/scope/posts.aspx

如果幸运的话,这可能允许使用其他元标记

可以将其他 HEAD 标签放入页面设置 > 高级设置 > 页眉标签。

位于http://www.dotnetnuke.com/Resources/Forums/forumid/-1/postid/223250/scope/posts.aspx

像这样 ?

<script>
var meta = document.createElement('meta');
meta.setAttribute('http-equiv', 'X-UA-Compatible');
meta.setAttribute('content', 'IE=Edge');
document.getElementsByTagName('head')[0].appendChild(meta);
</script>
你不需要setAttribute为此,无论是httpEquivcontent反映
2021-03-21 19:13:46

尝试

document.head.innerHTML += '<meta http-equiv="X-UA-..." content="IE=edge">'

正如@marcellothearcane 所指定的,对于现代浏览器,您还可以使用:

var meta = document.createElement('meta');
meta.httpEquiv = "X-UA-Compatible";
meta.content = "IE=edge";
document.head.appendChild(meta);

此处支持的浏览器:document.head