2013-06-14 11 views
17

ja mam problem dołączenie skryptu do głowy w IE7/8document.head.appendChild (element) czyli IE7 i IE8

jest to kod używam

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

to błąd pojawia

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

Znalazłem createElement error in IE8 i próbował aktualizację mojego kodu mieć

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

, ale wciąż pojawia się ten sam błąd. Czy ktoś może pomóc?

+0

Gwiazdka * głowica * własność obiektu dokumentu * został wprowadzony w HTML5, więc każda przeglądarka, która nie jest w pełni zgodna z HTML5, może go nie obsługiwać. Specyfikacja HTML5 jest "żywym" dokumentem, więc nie ma możliwości określenia, kiedy została wprowadzona (tj. W jakiej wersji), co utrudnia określenie, które przeglądarki mogą nie obsługiwać go inaczej niż przez próbę i błąd. – RobG

Odpowiedz

34

Według https://developer.mozilla.org/en-US/docs/Web/API/document.head i http://msdn.microsoft.com/en-us/library/gg593004%28v=vs.85%29.aspx, document.head nie jest dostępny dla IE < 9. Wystarczy użyć

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

dzięki perfect - wzmocnione obie odpowiedzi – Dan

+0

MDN nie jest ostatecznym odnośnikiem dla aplikacji Microsoft, lepiej odwołać się [MSDN] (http://msdn.microsoft.com/en-us/library/gg593004% 28v = vs.85% 29.aspx) (co mówi to samo, ale jest bardziej wiarygodnym źródłem). – RobG

14

Wierzę, że document.head nie jest obsługiwany w tych przeglądarkach.

Spróbuj to zamiast:

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

dzięki perfect - wzmocnione obie odpowiedzi – Dan

Powiązane problemy