当页面上有超过2 ^ 15个绝对定位元素时,IE9崩溃

时间:2014-07-28 10:32:00

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

我们正在使用Telerik报告在客户端上生成报告。现在,我们在一些罕见的情况下遇到一些问题,布局中的工件和浏览器挂起。这只发生在IE9中,而不是最新的Chrome浏览器。

所以我创建了一个小例子来测试它是否与页面上的元素数量有关,并发现当有超过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的问题和/或有关如何解决它的建议。

1 个答案:

答案 0 :(得分:0)

注意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元素的限制。