如何在javascript中找到带有偏移量的xy位置
你好,我的 javascript 代码有一些问题。
我想在 javascript 中获取所选文本的 xy 位置,并且我使用这样的越位函数:
function findPosX(obj)
{
var curleft = 0;
if(obj.offsetParent)
while(1)
{
curleft += obj.offsetLeft;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.x)
curleft += obj.x;
return curleft;
}
function findPosY(obj)
{
var curtop = 0;
if(obj.offsetParent)
while(1)
{
curtop += obj.offsetTop;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.y)
curtop += obj.y;
return curtop;
}
但是当我调用此函数来查找所选位置时,位置 X,Y 的结果始终为 0文本
var select = window.getSelection();
var posX = findPosX(select);
var posY = findPosY(select);
,我使用 mozilla firefox.. 请帮我
hello i have some problem with my javascript code..
i want to get xy position the selected text in javascript, and i use offside function like this :
function findPosX(obj)
{
var curleft = 0;
if(obj.offsetParent)
while(1)
{
curleft += obj.offsetLeft;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.x)
curleft += obj.x;
return curleft;
}
function findPosY(obj)
{
var curtop = 0;
if(obj.offsetParent)
while(1)
{
curtop += obj.offsetTop;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.y)
curtop += obj.y;
return curtop;
}
but the result of position X,Y always 0 when i call this function to find position selected text
var select = window.getSelection();
var posX = findPosX(select);
var posY = findPosY(select);
and i use mozilla firefox..
please help me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要在选择的一端插入一个虚拟元素。这是一个函数,用于获取所有主要浏览器(包括 IE 6)中所选内容的开始或结束坐标。请注意,这需要支持元素的
getBoundingClientRect()
方法,这排除了 Firefox 2如果您需要支持该浏览器,您可以在虚拟元素上使用诸如findPosX/Y
函数,而不是getBoundingClientRect()
。You will need to insert a dummy element at one end of the selection. Here's a function to get the coordinates of the start or end of the selection in all major browsers, including IE 6. Note that this requires support for the
getBoundingClientRect()
method of elements, which rules out Firefox 2. If you need to support that browser, you can use something like yourfindPosX/Y
functions on the dummy element instead ofgetBoundingClientRect()
.