我的网页的代码框架在下面提供,当我点击任何td(指向示例代码的底部)时,它调用javascript:onMouseDownOnTable()
html
body
div
div
div
iframe
html
frameset
frame
html
body
div
form
div
table
tbody
tr
td
table
tbody
tr
td
table
tbody
tr
td
div onmousedown ="javascript:onMouseDownOnTable(event)"
table
tbody tr
td1 td2....tdN <----- click on this td and open a context-menu at this position
tr
td1 td2..tdN
在这种情况下,有人可以为我提供获得正确的X,Y坐标的方法吗?
我无法在IE和FF中获得正确的位置。两个浏览器的位置都来自不同的地方。 使用以下方法获取坐标但没有得到正确的位置:
function getContextMenuLocation(e, win)
{
var curX = 0;
var curY = 0;
var scrollSumX = 0;
var scrollSumY = 0;
var oElement = e.target || e.srcElement;
var oWindow = win || window;
do
{
scrollSumX += oElement.scrollLeft;
scrollSumY += oElement.scrollTop;
curX += oElement.offsetLeft;
curY += oElement.offsetTop;
oElement = oElement.offsetParent;
if (!oElement)
{
oElement = oWindow.frameElement;
oWindow = oWindow.parent;
curX -= oWindow.pageXOffset;
curY -= oWindow.pageYOffset;
}
}
while (oElement);
curX += (e.offsetX == undefined ? e.layerX : e.offsetX) - scrollSumX;
curY += (e.offsetY == undefined ? e.layerY : e.offsetY) - scrollSumY;
return {x:curX, y:curY};
};