我正在尝试在网页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。
那么问题是什么以及它为什么没有返回实际距离?
答案 0 :(得分:0)
您在问题中添加了标记jQuery,因此我假设您已在使用它。
我建议使用函数.position(),这应该返回password input的X和Y坐标:
var p = $('#password').position();
console.log("x=" + p.left + "; y=" + p.top);
如果您不使用jQuery,element.getBoundingClientRect()
很好,但它没有jQuery提供的跨浏览器修复。