首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是html5shiv的错误吗?

这是html5shiv的错误吗?
EN

Stack Overflow用户
提问于 2014-07-23 08:47:23
回答 1查看 111关注 0票数 6

我刚刚看到了html5shiv并找到了以下代码:

代码语言:javascript
复制
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);
  }

使用p.innerHTML = 'x<style>' + cssText + '</style>';的地方。为什么这里使用x

EN

回答 1

Stack Overflow用户

发布于 2014-07-23 20:49:21

不,这不是打字错误。

关于x的问题 aFarkas给出了答案

这是因为旧IE的非标准概念。类似于CSS中的“有布局”的概念,他们有用innerHTML渲染的作用域元素和非作用域元素的概念。

aFarkas指出了两篇文章

  • http://allofetechnical.wordpress.com/2010/05/21/ies-innerhtml-method-with-script-and-style-tags/
  • http://www.thecssninja.com/javascript/noscope

问题所在

当IE将HTML字符串转换为DOM结构时,它对脚本和样式的处理方式与任何其他标记都不一样。当它命中一个节点时,它会检查它前面是否有“可见的”节点。(可见非常松散地表示在呈现结构时将显示的节点。)如果在点击脚本或样式之前没有任何可见的节点,它只会丢弃这些节点并继续处理。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24905871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档