如何在JavaScript中添加meta标签
问题的原因是通过JavaScript动态地添加meta标签可能无法在页面渲染之前生效,这是因为浏览器可能已经在渲染页面之前做出了决策。解决方法是在服务器端输出正确的meta标签。
可以使用以下代码通过JavaScript添加meta标签:
var meta = document.createElement('meta'); meta.httpEquiv = "X-UA-Compatible"; meta.content = "IE=edge"; document.getElementsByTagName('head')[0].appendChild(meta);
然而,这种方法在IE8中可能无效。在IE8中,可以尝试使用document.write
替换整个文档内容,以强制使用Quirks而不是IE 7 Standards。可能还可以通过创建一个新的文档对象并替换当前文档来触发文档模式的重新评估。在IE8中,createDocument
函数不可用,但可以使用iframe
来创建一个新的文档实例。
需要注意的是,以上方法在IE浏览器中可能无效,因为IE在页面渲染开始后,如果没有指定或存在冲突,会默认选择支持的旧版标准(如IE7)。
问是否可以使用document.head.appendChild()
代替document.getElementsByTagName('head')[0].appendChild()
,答案是如果浏览器支持document.head
,则可以使用document.head.appendChild()
。大多数现代浏览器都支持该方法。
文章标题:如何在JavaScript中添加meta标签
在JavaScript中添加meta标签可以通过以下两种方法实现:
方法一:
$('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);
以上代码会在页面加载后生成,但不能确定其是否会起作用。
根据http://www.dotnetnuke.com/Resources/Forums/forumid/7/threadid/298385/scope/posts.aspx上的内容,如果要添加页面描述的meta标签,可以使用DNN页面的设置来添加描述和关键词。此外,在修改HEAD标签时,最好的方法是通过第三方模块动态将代码注入到HEAD中。
另外,根据http://www.dotnetnuke.com/Resources/Forums/forumid/-1/postid/223250/scope/posts.aspx上的内容,可以将其他meta标签放置在页面设置->高级设置->页面头部标签中。
以上方法可以实现在JavaScript中添加meta标签,并且如果运气好的话,还可以添加其他meta标签。