Java GWT Element.getAbsoluteLeft和getAbsoluteTop在放大到99%时提供非常大的值

Java GWT Element.getAbsoluteLeft和getAbsoluteTop在放大到99%时提供非常大的值,java,internet-explorer,gwt,Java,Internet Explorer,Gwt,我有一个使用GWT2.3开发的应用程序。getAbsoluteLeft()和getAbsoluteTop()方法用于获取文本框的左侧和顶部位置,如下所示。在正常屏幕中,IE11会返回正确的值(缩放=100%或更多)。但是如果我们把屏幕放大到99%或更低,它会返回一个非常大的值 int left=textbox.getAbsoluteLeft(); int top= textbox.getAbsoluteTop(); 屏幕放大到99%或更小时返回的值 left = 2147483647 top

我有一个使用GWT2.3开发的应用程序。getAbsoluteLeft()和getAbsoluteTop()方法用于获取文本框的左侧和顶部位置,如下所示。在正常屏幕中,IE11会返回正确的值(缩放=100%或更多)。但是如果我们把屏幕放大到99%或更低,它会返回一个非常大的值

int left=textbox.getAbsoluteLeft();
int top= textbox.getAbsoluteTop(); 
屏幕放大到99%或更小时返回的值

left = 2147483647
top = -2147483649
返回的值是最小和最大范围(如果为int)。在这里获得绝对左侧和顶部位置的正确方法是什么。GWT中是否有其他方法可以在IE11中正确完成此操作


在IE8中,它可以正常工作,也可以使用任何缩放百分比值。

我不知道这是否有帮助

但是试试看:

private static native double getElementLeft(Element element)
/*-{
   var rectObject = element.getBoundingClientRect();
   return rectObject.left;
}-*/;

private static native double getElementTop(Element element)
/*-{
   var rectObject = element.getBoundingClientRect();
   return rectObject.top;
}-*/;
这使用了getBoundingClientRect(),我知道GWT代码getAbsoluteLeft和getAbsoluteTop没有使用它。 使用getBoundingClientRect的好处是,它提供了有时需要的亚像素值(双倍而不是整数)