【问题标题】:IE9 crashes when there are over 2^15 absolute positioned elements on page当页面上有超过 2^15 个绝对定位元素时,IE9 崩溃
【发布时间】:2014-07-28 10:32:00
【问题描述】:

我们正在使用 Telerik 报告来生成有关客户端的报告。现在,我们在极少数情况下遇到了一些问题,即布局中的伪影和浏览器挂起。这仅发生在 IE9 中,而不是最新的 Firefox 浏览器。

所以我创建了一个小示例来测试它是否与页面上的元素数量有关,并发现当绝对定位元素超过 2^15 个时会出现问题。 (很多,是的 - 但如果我们要保留这个框架,我无法控制)。

<html>
<head>
</head>
<body>
<script type="text/javascript">
    for(var i = 0; i < 32768; i++){
        document.write("<div id = 'node" + i + "' style='position:absolute;top:" + i*25 + "'>distance to top: " + i*25 + "</div>");
    }
</script>
</body>
</html>

如果确认这是 IE9 的问题和/或有关如何解决该问题的建议,我将不胜感激。

【问题讨论】:

    标签: html css internet-explorer internet-explorer-9 telerik-reporting


    【解决方案1】:

    注意2^15是32768,是16位整数的上限。在这种情况下,Internet Explorer 似乎将元素层次结构(DOM 或文档对象模型)存储为 16 位整数,因此存在限制。

    请注意,这不是任何固有的 HTML 限制,而仅仅是 IE9 中的实现限制。请尝试检查 IE10/11,因为这些浏览器增加了对 CSS 规则 (http://blogs.msdn.com/b/ieinternals/archive/2011/05/14/internet-explorer-stylesheet-rule-selector-import-sheet-limit-maximum.aspx) 的限制,并且可能同时增加了 DOM 元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      相关资源
      最近更新 更多