iframe下javascript中HTML表格单元格的X,Y坐标?

时间:2014-12-15 11:30:02

标签: javascript html iframe position contextmenu

我的网页的代码框架在下面提供,当我点击任何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};
 
 
    };

0 个答案:

没有答案