JavaScript没有返回正确的值(元素的位置)

时间:2013-07-29 23:21:21

标签: javascript html google-chrome position

我正在尝试在网页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。

那么问题是什么以及它为什么没有返回实际距离?

1 个答案:

答案 0 :(得分:0)

您在问题中添加了标记jQuery,因此我假设您已在使用它。

我建议使用函数.position(),这应该返回password input的X和Y坐标:

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

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