2010-04-20 15 views
5

Chcę dodać trochę stylu do nagłówka na stronie html przy użyciu javascript.Dodaj trochę kodu HTML do tagu HEAD?

var h = document.getElementsByTagName('head').item(0); 
h.innerHTML += '<style>a{font-size:100px;}</style>'; 

Ale kiedy uruchomić ten kod w IE8 widzę ten komunikat o błędzie: Nie można ustawić właściwość innerHTML. Nieprawidłowy element docelowy dla tej operacji.

Jakieś pomysły?

+2

Oprócz problemu z IE nie podoba ustawić 'innerHTML' na różnych elementów, takich jak' ': Nigdy nie używać' innerHTML + = '. Szeregowałbyś wszystkie węzły w elemencie head do HTML, dodając ciąg znaków, a następnie analizując je, tracąc w procesie wszystkie nieprzesłane treści. Tego zawsze należy unikać. – bobince

Odpowiedz

13

Tworzenie elementu style z createElement:

var h = document.getElementsByTagName('head').item(0); 
var s = document.createElement("style"); 
s.type = "text/css"; 
s.appendChild(document.createTextNode("a{font-size:100px;}"); 
h.appendChild(s); 
+0

Cześć! Ten kod działa w przeglądarce Chrome. Ale w IE mam ten błąd: nieoczekiwane wywołanie metody lub dostęp do właściwości. –

+1

Znalazłem rozwiązanie. Problem był w tym wierszu: s.appendChild (document.createTextNode ("a {font-size: 100px;}"); Zobacz, jak to naprawić tutaj: http://www.phpied.com/dynamic-script- i-style-elements-in-ie / –

Powiązane problemy