这是一个简单的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.contentEdge
或inputSlider.borderEdge
时会出现同样的问题。
这是一个已知的错误吗?
答案 0 :(得分:0)
您的代码暗示您不会将元素添加到DOM。我猜IE在这里更严格,因为不在DOM中的元素没有客户端矩形。
当我将元素添加到正文时,我将得到一个矩形。
您可以改用getClientRects()
。这将返回一个空列表而不是抛出异常。
此致 罗伯特