如何通过jQuery / JavaScript添加任何内容<head>?

使用CMS来防止为<head>元素编辑HTML源代码。

例如,我想在<title>标签上添加以下内容:

 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

你可以select它并像往常一样添加到它:

 $('head').append('<link />'); 

JavaScript的:

 document.getElementsByTagName('head')[0].appendChild( ... ); 

使DOM元素如下所示:

 link=document.createElement('link'); link.href='href'; link.rel='rel'; document.getElementsByTagName('head')[0].appendChild(link); 

jQuery的

 $('head').append( ... ); 

JavaScript的:

 document.getElementsByTagName('head')[0].appendChild( ... ); 

在最新的浏览器(IE9 +)中,您也可以使用document.head :

例:

 var favicon = document.createElement('link'); favicon.id = 'myFavicon'; favicon.rel = 'shortcut icon'; favicon.href = 'http://www.test.com/my-favicon.ico'; document.head.appendChild(favicon); 

您可以使用innerHTML来连接额外的字段string;

 document.head.innerHTML = document.head.innerHTML + '<link rel="stylesheet>...' 

但是,您不能保证添加到头部的额外内容在第一次加载后将被浏览器识别,并且可能会在加载额外样式表时获得FOUC(未格式化内容的闪光)。

我几年没有看过这个API,但是也可以使用document.write ,这是为这种行为devise的。 但是,这将需要你阻止页面渲染,直到你的初始AJAX请求完成。

创build一个临时元素(例如DIV ),将HTML代码(通过Ajax接收)分配给它的innerHTML属性,然后将其子节点逐个添加到HEAD元素。 例如,像这样:

 var code = '<link rel="stylesheet" href="example.css" />' + '<script src="foobar.js"><\/script> '; var temp = document.createElement('div'); temp.innerHTML = code; var head = document.head; while (temp.firstChild) { head.appendChild(temp.firstChild); } 

与仅通过innerHTML重写整个HEAD内容相比,这不会以任何方式影响HEAD元素的现有子元素。

请注意,以这种方式插入的脚本显然不会自动执行,而样式已成功应用。 所以如果你需要执行脚本,你应该使用Ajax加载JS文件,然后使用eval()来执行它们的内容。

尝试一个JavaScript纯粹:

图书馆JS:

 appendHtml = function(element, html) { var div = document.createElement('div'); div.innerHTML = html; while (div.children.length > 0) { element.appendChild(div.children[0]); } } 

types: appendHtml(document.head, '<link rel="stylesheet" type="text/css" href="http://example.com/example.css"/>');

或jQuery:

 $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', 'http://example.com/example.css')); 

与jQuery的你有其他select:

 $('head').html($('head').html() + '...'); 

无论如何它正在工作。 别人说的JavaScript选项也是正确的。