首页 > 请教一个html5shiv源码插入样式的问题

请教一个html5shiv源码插入样式的问题

阅读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);
  }

不知道源码中的做法是不是出于兼容性或其他方面的考虑,还请赐教,谢!

【热门文章】
【热门文章】