2010-04-20 13 views
5

Voglio aggiungere un po 'di stile al tag head nella pagina html usando javascript.Aggiungi qualche HTML nel tag HEAD?

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

Ma quando ho eseguito questo codice in IE8 vedo questo messaggio di errore: Impossibile impostare la proprietà innerHTML. Elemento di destinazione non valido per questa operazione.

Qualche idea?

+2

A parte il problema con IE non gradimento per impostare 'innerHTML' su vari elementi come' ': Non utilizzare mai' innerHTML + = '. Dovresti serializzare tutti i nodi all'interno dell'elemento head in HTML, aggiungere una stringa e poi analizzarli indietro, perdendo tutto il contenuto non serializzabile nel processo. Questo è sempre da evitare. – bobince

risposta

13

Creare l'elemento style con 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

Ciao! Questo codice funziona in Chrome. Ma in IE ho ricevuto questo errore: chiamata inattesa al metodo o accesso alla proprietà. –

+1

Ho trovato la soluzione. Il problema era in questa riga: s.appendChild (document.createTextNode ("a {font-size: 100px;}"); Vedi come risolverlo qui: http://www.phpied.com/dynamic-script- e-style-elementi-in-iE / –

Problemi correlati