2013-06-14 3 views
17

ich ein Problem habe ein Skript mit dem Kopf in IE7/8document.head.appendChild (Element), dh IE7 und IE8

das Anfügen ist der Code i

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); 

bin mit dieser ist i den Fehler

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

ich diesen createElement error in IE8 gefunden und versucht, zu aktualisieren meinen Code

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

aber immer noch den gleichen Fehler. Kann jemand helfen?

+0

Der * Kopf * Eigenschaft des Dokuments * verwenden * Objekt wurde in HTML5 eingeführt, sodass ein Browser, der nicht vollständig HTML5-kompatibel ist, dies möglicherweise nicht unterstützt. Die HTML5-Spezifikation ist ein "lebendiges" Dokument, daher gibt es keine Möglichkeit anzugeben, wann es eingeführt wurde (d. H. In welcher Version), was es schwierig macht zu bestimmen, welche Browser es nur durch Versuch und Irrtum unterstützen. – RobG

Antwort

34

Nach https://developer.mozilla.org/en-US/docs/Web/API/document.head und http://msdn.microsoft.com/en-us/library/gg593004%28v=vs.85%29.aspx, document.head ist nicht verfügbar IE < 9. Nur

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

danke perfekt - beide antworten – Dan

+0

MDN ist keine definitive Referenz für Microsoft-Anwendungen, besser zu Referenz [MSDN] (http://msdn.microsoft.com/en-us/library/gg593004% 28v = vs.85% 29.aspx) (was dasselbe sagt, aber eine autoritativere Quelle ist). – RobG

14

Ich glaube, document.head wird in diesen Browsern nicht unterstützt.

Versuchen Sie stattdessen:

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

danke perfekt - beide antworten – Dan