异步IE8 / jquery表行高计算

时间:2013-02-12 21:28:23

标签: jquery html-table internet-explorer-8

<!DOCTYPE html>
<html>
<head>
  <title>Test IE8 pre calc</title>
</head>
<body>

<div id='inserthere'></div>
<p id="dump"></p>
<p id="dump2"></p>
</body>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script>
  $(function () {
    var t = "<table style='white-space: pre;'><tr><td>abc def\nghi</td></tr></table>";

    $("#inserthere").append($(t));
    $("#dump").text($("tr").height());

    window.setTimeout(function () {
      $("#dump2").text($("tr").height());
    }, 0);
  });
</script>
</html>

在上面的代码中,我在运行时向DOM插入一个表。该表使用'pre'空格规则进行格式化。

如果在与插入相同的调用中计算包含多行td的行的height(),则IE8错误地报告单行(21个像素)。如果异步进行相同的调用,IE8会正确报告两行(40个像素)。

IE9 / 10 / Safari / Chrome / Firefox很好。

1 个答案:

答案 0 :(得分:0)

我还没找到工作 - 所以答案是不要做。 white-space&#39; nowrap&#39;将回车符替换为<br>后,工作方式类似。