2013-06-14 32 views
17

tôi đang gặp một vấn đề phụ thêm một kịch bản cho người đứng đầu trong IE7/8document.head.appendChild (element) tức là IE7 và IE8

này là mã tôi đang sử dụng

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

này lỗi tôi nhận được

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

tôi thấy createElement error in IE8 này và cố gắng cập nhật mã của tôi để có

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

nhưng vẫn gặp lỗi tương tự. Có ai giúp được không?

+0

Các * đầu * tài sản của tài liệu * * đối tượng đã được giới thiệu trong HTML5, do đó, bất kỳ trình duyệt nào không tuân thủ đầy đủ HTML5 đều có thể không hỗ trợ nó. Đặc tả HTML5 là một tài liệu "sống", vì vậy không có cách nào để xác định khi nào nó được giới thiệu (nghĩa là trong phiên bản nào), điều này gây khó khăn cho việc xác định trình duyệt nào có thể không hỗ trợ nó ngoài việc thử và sai. – RobG

Trả lời

34

Theo https://developer.mozilla.org/en-US/docs/Web/API/document.headhttp://msdn.microsoft.com/en-us/library/gg593004%28v=vs.85%29.aspx, document.head là không có sẵn cho IE < 9. Chỉ cần sử dụng

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

cảm ơn hoàn hảo - cả hai trả lời – Dan

+0

MDN không phải là một tham chiếu dứt khoát cho các ứng dụng Microsoft, tốt hơn để tham khảo [MSDN] (http://msdn.microsoft.com/en-us/library/gg593004% 28v = vs.85% 29.aspx) (nói cùng một điều, nhưng là một nguồn có thẩm quyền hơn). – RobG

14

Tôi tin rằng document.head không được hỗ trợ trong các trình duyệt đó.

Hãy thử điều này thay vì:

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

cảm ơn hoàn hảo - cả hai trả lời – Dan

Các vấn đề liên quan