Dart - getBoundingClientRec()中IE10中的异常

时间:2014-05-28 15:39:02

标签: javascript dart

这是一个简单的DART代码,可以在Chrome和FF中完美运行但在IE10中引发异常:

import 'dart:html';

RangeInputElement inputPageSlider;

void main() {
  inputPageSlider = new RangeInputElement();
  inputPageSlider..id="pageslider" 
      ..className="leftFill ddrintslider"
      ..style.display="inline-block"
      ..style.whiteSpace="normal"
      ..style.marginTop="14px" 
      ..style.width="82%"
      ..style.height="1px"
      ..style.marginLeft="auto"
      ..style.marginRight="auto"
      ..value = '1'
      ..name="pageslider" ;


  print(inputPageSlider.getBoundingClientRect().width);
  print(inputPageSlider.getBoundingClientRect().left);

}

以下是例外:

SCRIPT16389: Unspecified error. 
ietest.dart.js, line 971 character 1

和代码:

966: J.Fm(z.style,"auto")
967: J.GL(z.style,"auto")
968: y=J.RE(z)
969: y.sP(z,"1")
970: y.soc(z,"pageslider")
971: P.JS(J.DO($.i9.getBoundingClientRect()))
972: P.JS(J.hs($.i9.getBoundingClientRect()))}},1],])
973: I.$finishClasses($$,$,null)

访问inputSlider.contentEdgeinputSlider.borderEdge时会出现同样的问题。

这是一个已知的错误吗?

1 个答案:

答案 0 :(得分:0)

您的代码暗示您不会将元素添加到DOM。我猜IE在这里更严格,因为不在DOM中的元素没有客户端矩形。

当我将元素添加到正文时,我将得到一个矩形。

您可以改用getClientRects()。这将返回一个空列表而不是抛出异常。

此致 罗伯特