Есть ли способ добавить css из строки в файле javascript в голову документа с javascript?
Скажем, у нас есть веб-страница, у которой есть лайтбокс script, для этого script нужен файл css.
Теперь добавление этого css файла с помощью <link>
сделает загрузку файла css даже для людей, у которых нет js.
Я знаю, что я могу динамически загружать css файл с помощью script, но это также означает, что будет 2 HTTP-запроса, и в случаях, когда в файле почти ничего нет css, я считаю это неэффективным.
Итак, я подумал про себя: что, если вы можете положить css, который у вас есть в файле css, в script, попробуйте script разобрать css и добавить его в голову, или даже лучше просто script добавить css непосредственно в <head>
документа.
Но я ничего не нашел в Интернете, что предполагает, что это возможно, так что можно добавить css в голову с помощью js?
Изменить + РЕШЕНИЕ:
Я отредактировал ответ roryf для работы кросс-браузера (кроме IE5)
JavaScript:
function addcss(css){
var head = document.getElementsByTagName('head')[0];
var s = document.createElement('style');
s.setAttribute('type', 'text/css');
if (s.styleSheet) { // IE
s.styleSheet.cssText = css;
} else { // the world
s.appendChild(document.createTextNode(css));
}
head.appendChild(s);
}