2013-06-14 16 views
17

sto avendo un problema aggiungendo uno script per la testa in IE7/8document.head.appendChild (elemento) cioè IE7 e ie8

questo è il codice sto usando

var requireTag = document.createElement('script'); 
requireTag.setAttribute('type',   'text/javascript'); 
requireTag.setAttribute('src',   link+ 'require.js'); 
requireTag.setAttribute('data-main', link+ 'data'); 

document.head.appendChild(requireTag); 

questo viene l'errore che ottengo

SCRIPT5007: Unable to get value of the property 
'appendChild': object is null or undefined 

ho trovato questo createElement error in IE8 e provato ad aggiornare il mio codice di avere

var appendChild = document.head.appendChild(requireTag); 

ma si ottiene lo stesso errore. Qualcuno può aiutare?

+0

Il capo * proprietà del documento * * * oggetto è stato introdotto in HTML5, quindi nessun browser che non sia completamente compatibile con HTML5 potrebbe non supportarlo. La specifica HTML5 è un documento "vivente", quindi non c'è modo di specificare quando è stato introdotto (cioè in quale versione), il che rende difficile determinare quali browser potrebbero non supportarlo se non per tentativi ed errori. – RobG

risposta

34

Secondo https://developer.mozilla.org/en-US/docs/Web/API/document.head e http://msdn.microsoft.com/en-us/library/gg593004%28v=vs.85%29.aspx, document.head non è disponibile per IE < 9. Basta usare

document.getElementsByTagName('head')[0].appendChild(requireTag); 
+0

grazie perfetto - ha aumentato entrambe le risposte – Dan

+0

MDN non è un riferimento definitivo per le applicazioni Microsoft, meglio fare riferimento [MSDN] (http://msdn.microsoft.com/en-us/library/gg593004% 28v = vs.85% 29.aspx) (che dice la stessa cosa, ma è una fonte più autorevole). – RobG

14

Credo che document.head non sia supportato in quei browser.

Prova a modificare:

var head = document.getElementsByTagName("head")[0]; 
head.appendChild(requireTag); 
+0

grazie perfetti - ha aumentato entrambe le risposte – Dan

Problemi correlati