document.head.appendChild(element) 即 ie7 和 ie8
Posted
技术标签:
【中文标题】document.head.appendChild(element) 即 ie7 和 ie8【英文标题】:document.head.appendChild(element) ie ie7 and ie8 【发布时间】:2013-06-10 14:47:42 【问题描述】:在 ie7/8 中将脚本附加到头部时遇到问题
这是我正在使用的代码
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);
但仍然得到同样的错误。有人可以帮忙吗?
【问题讨论】:
document 对象的 head 属性是在 html5 中引入的,因此任何不完全符合 HTML5 的浏览器都可能不支持它。 HTML5 规范是一个“活的”文档,因此无法指定它是何时引入的(即在哪个版本中),这使得很难确定哪些浏览器可能不支持它,除非通过反复试验。 【参考方案1】:根据 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
document.getElementsByTagName('head')[0].appendChild(requireTag);
【讨论】:
MDN 不是 Microsoft 应用程序的权威参考,最好参考 MSDN(它说同样的话,但更权威的来源)。【参考方案2】:我相信这些浏览器不支持document.head
。
试试这个:
var head = document.getElementsByTagName("head")[0];
head.appendChild(requireTag);
【讨论】:
以上是关于document.head.appendChild(element) 即 ie7 和 ie8的主要内容,如果未能解决你的问题,请参考以下文章