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

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

我们使用 Telerik 报告生成客户端报告。现在,在极少数情况下,我们会遇到一些问题,包括布局中的伪影和浏览器挂起。这只发生在 IE9 中,而不是最新的 Firefox 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 的问题和/或关于如何解决它的建议,我将不胜感激。

最佳答案

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

关于html - 当页面上有超过 2^15 个绝对定位元素时 IE9 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993315/

相关文章:

php - 一次从 mySQL 数据库中删除多个值

javascript - 在指令中声明范围的方法之间的差异(内部显示的方法)

javascript - 如何使用onclick标签发送post值ajax?

html - twitter popover - 为不同的 popovers 应用不同的 css 类

css - Internet Explorer 8 显示渐变而不是背景图像

html - CSS 在所有浏览器中都不起作用

html - 如何使第三部分图像对齐顶部?

javascript - 尝试在 JQUERY 中显示更多文本时,我无法让 .show 工作

css - 使用 Compass 和 SASS maven 插件生成 Sprite 缺少加载路径

从 VBS 调用的 Javascript 代码在运行时抛出未指定的错误