2013-06-14 1 views
17

я имею вопрос присоединяя сценарий к голове в IE7/8document.head.appendChild (элемент), т.е. IE7 и IE8

это код, я использую

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

это Я получаю ошибку

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

Я нашел этот createElement error in IE8 и пытался обновить свой код, чтобы иметь

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

, но все равно получить ту же ошибку. Может ли кто-нибудь помочь?

+0

The * голова * свойство * документ * объект был введен в HTML5, поэтому любой браузер, который не полностью совместим с HTML5, может не поддерживать его. Спецификация HTML5 является «живым» документом, поэтому нет способа указать, когда она была введена (т. Е. В какой версии), что затрудняет определение того, какие браузеры могут не поддерживать ее, кроме как путем проб и ошибок. – RobG

ответ

34

Согласно https://developer.mozilla.org/en-US/docs/Web/API/document.head и http://msdn.microsoft.com/en-us/library/gg593004%28v=vs.85%29.aspx, document.head не доступен для IE < 9. Просто используйте

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

спасибо отлично - поднял оба ответа – Dan

+0

MDN не является окончательной ссылкой для приложений Microsoft, лучше ссылаться на [MSDN] (http://msdn.microsoft.com/en-us/library/gg593004% 28v = vs.85% 29.aspx) (что говорит то же самое, но является более авторитетным источником). – RobG

14

Я считаю, что document.head не поддерживается в этих браузерах.

Попробуйте вместо этого:

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

спасибо отлично - поднял оба ответа – Dan

 Смежные вопросы

  • Нет связанных вопросов^_^