在网页里有一个iframe,iframe里的按钮被单击时,我想获得单击点相对于整个网页客户区的坐标,这个坐标用来确定另一个iframe的显示位置(这个iframe用来动态显示信息)另外 iframe根据自己的内容动态的改变大小的代码
//'ifDetail'是iframe的名字
document.all['ifDetail'].style.height=ifDetail.document.body.scrollHeight;
能否写为公共的函数?当把ifDetail换成document.getElementById('ifDetail')时就不能正常显示了,对于document.all['ifDetail'],我也不太清楚这种形式和getElementById()得到的对象有什么区别,更换之后也不对请各位指教^-^

解决方案 »

  1.   

    event.clientX, event.clientY 是相对于鼠标单击点所在的iframe而言的,也就是相对于iframe的相对坐标,我想要的是相对于整个窗口的,开始想得到iframe的top, left坐标,也没有找到方法请指点!
      

  2.   

    top.window.event.x
    top.window.event.y
      

  3.   

    呵呵 不行function window.onload()
    {
    var tempstr = "frame1<scri"+"pt>function document.onclick(){alert(window.event.x + top.document.getElementById('frame1offsetx').value*1);alert(window.event.y + top.document.getElementById('frame1offsety').value*1);}</scr"+"ipt>";
    window.frames.item("frame1").document.write(tempstr);
    alert(window.frames.item("frame1").document.documentElement.innerHTML);
    var iframe1 = document.getElementById("frame1");
    var pos = getAbsolutePosition(iframe1);
    document.getElementById("frame1offsetx").value = pos.x;
    document.getElementById("frame1offsety").value = pos.y;
    }function getAbsolutePosition(obj)
    {
    position = new Object();
    position.x = 0;
    position.y = 0;
    var tempobj = obj;
    while(tempobj!=null && tempobj!=document.body)
    {
    position.x += tempobj.offsetLeft + tempobj.clientLeft;
    position.y += tempobj.offsetTop + tempobj.clientTop;
    tempobj = tempobj.offsetParent
    }
    position.x += document.body.scrollLeft;
    position.y += document.body.scrollTop;
    return position;
    }</script>
      

  4.   

    用getAbsolutePosition(obj)能算出来坐标了
    谢谢!
    tempobj.clientLeft也加进来时什么意思呢?我查clientLeft的解释是这样的:
    Retrieves the distance between the offsetLeft property and the true left side of the client area.看不明白