Создайте временный элемент (например DIV), назначьте свой HTML-код его innerHTMLсвойству, а затем добавьте его дочерние узлы к HEADэлементу один за другим. Например, вот так:
var temp = document.createElement('div');
temp.innerHTML = '<link rel="stylesheet" href="example.css" />'
+ '<script src="foobar.js"><\/script> ';
var head = document.head;
while (temp.firstChild) {
head.appendChild(temp.firstChild);
}
По сравнению с перезаписью всего HEADсодержимого через него innerHTML, это никак не повлияет на существующие дочерние элементы HEADэлемента.
Обратите внимание, что скрипты, вставленные таким образом, по-видимому, не выполняются автоматически, а стили применяются успешно. Поэтому, если вам нужно выполнить скрипты, вы должны загрузить файлы JS с помощью Ajax, а затем выполнить их содержимое с помощью eval().