0

我正在尝试在网页http://login.secureserver.net/index.php?app=wbe上获取元素(密码输入)的位置。我在 Chrome 的 javascript 控制台中键入此代码

function fp(obj){
    var x=0,y= 0;
    if (obj.offsetParent) {
        do {
            x+= obj.offsetLeft;
            y+= obj.offsetTop;
           } while (obj = obj.offsetParent);
    }
};
fp(document.getElementById('password'));
console.log("x="+x+"; y="+y)

它返回 x=809; y=380。

用 Photoshop 测量屏幕截图时,它似乎有 x=816;y=388。

那么问题出在哪里,为什么它没有返回真实距离?

4

1 回答 1

0

您在问题中包含了标签jQuery,所以我假设您已经在使用它。

我建议为此使用函数.position(),它应该返回密码输入的 X 和 Y 坐标:

var p = $('#password').position();
console.log("x=" + p.left + "; y=" + p.top);

如果您不使用 jQuery,element.getBoundingClientRect()那很好,但它没有 jQuery 提供的跨浏览器修复。

于 2013-07-30T01:11:40.213 回答