2010-04-20 15 views
5

Quiero agregar un poco de estilo a la etiqueta principal en la página html usando javascript.¿Agregue algo de HTML en la etiqueta HEAD?

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

Pero cuando corro este código en Internet Explorer 8 que ver este mensaje de error: No se pudo establecer la propiedad innerHTML. Elemento de destino inválido para esta operación.

¿Alguna idea?

+2

Aparte de la cuestión con el IE no le gustaba para establecer 'innerHTML' de diversos elementos como' ': No utilice en' 'innerHtml + =. Estarías serializando todos los nodos dentro del elemento principal en HTML, agregando una cadena y luego analizándolos, perdiendo todo el contenido no serializable en el proceso. Esto siempre debe evitarse. – bobince

Respuesta

13

Crear el 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

Hola! Este código funciona en Chrome. Pero en IE obtuve este error: llamada inesperada al método o acceso a la propiedad. –

+1

Encontré la solución. El problema estaba en esta línea: s.appendChild (document.createTextNode ("a {font-size: 100px;}"); Vea cómo solucionarlo aquí: http://www.phpied.com/dynamic-script- and-style-elements-in-ie / –

Cuestiones relacionadas