2010-10-07 1 views
1

Я создаю виджет javascript, и мне нужно динамически добавлять мои виджеты css и js-файлов на клиентскую страницу.добавить javascripts и css файлы динамически в html с помощью javascript

Я делаю это сейчас:

var css = document.createElement('link'); 
    css.setAttribute('rel', 'stylesheet'); 
    css.setAttribute('href', 'css path'); 
    document.getElementById('test').appendChild(css); 
    alert(document.getElementById('test').innerHTML); 

Но это не добавляет элемент в DOM. Предупреждение отображается правильно.

Что мне не хватает?

EDIT1:

Вот обновленный код: (обратите внимание, что это только тестовая страница).

<html> 
    <head> 

    </head> 
    <body> 
     <div id="test"> 
      test 
     </div> 

     <script type="text/javascript"> 


    var css = document.createElement('link'); 
    css.setAttribute('rel', 'stylesheet'); 
    css.setAttribute("type", "text/css"); 
    css.setAttribute('href', 'path'); 
    var header = document.getElementsByTagName("head")[0]; 
    header.appendChild(css); 
    alert(header.innerHTML); 

     </script> 
    </body> 
</html> 

header.InnerHtml отображается верно, но ничего не добавлено на страницу.

+3

ли вы на самом деле установка '' href' в» css path ", или вы устанавливаете фактический путь к вашему CSS? Также добавьте CSS в ''. –

+0

Путь верный. Я вставил url в браузере, и он показывает мой файл css. – brpaz

+0

путь правильный, но права на файл css верны? если вы вставляете прямо в документ, файл правильно разбирается? – 2010-10-07 16:57:25

ответ

4

Вы пытались добавить css в раздел < >?

var css = document.createElement('link'); 
    css.setAttribute('rel', 'stylesheet'); 
    css.setAttribute('href', 'css path'); 
    document.getElementsByTagName('head')[0].appendChild(css); 
+0

+1 - CSS должен быть объявлен в элементе «head» документа. Нельзя включать его в другое место. – Fenton

2

Я думаю, что вам нужно, чтобы присоединить его к вашей HTML, а не просто документ:

var css = document.createElement('link'); 
css.setAttribute('rel', 'stylesheet'); 
css.setAttribute("type", "text/css"); 
css.setAttribute('href', 'css path'); 
var header = document.getElementsByTagName("head")[0]; 
header.appendChild(css); 

Надежда это помогает :)

+0

Он все еще не работает. ВнутреннийHTML элемента заголовка правильный, но ничего не добавлено на страницу. Я отправлю обновленный код в первый пост. – brpaz