阅读html5shiv源码的时候,对addStyleSheet函数添加样式的方式有些困惑,特来请教
源码如下:
function addStyleSheet(ownerDocument, cssText) {
var p = ownerDocument.createElement('p'),
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
p.innerHTML = 'x<style>' + cssText + '</style>';
return parent.insertBefore(p.lastChild, parent.firstChild);
}
不清楚这里为什么要把style样式添加到p标签中,并且前面带有x字母。
我的想法是可以直接创建style元素,然后把style插入到head中。
function addStyleSheet(ownerDocument, cssText) {
var style = ownerDocument.createElement('style'),
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
style.innerHTML = cssText;
return parent.insertBefore(style, parent.firstChild);
}
不知道源码中的做法是不是出于兼容性或其他方面的考虑,还请赐教,谢!