给出几种解决方案:
1. 用 iframe 做层载体, 载入新网页并且定位在控件之下, 类似于那个日历的做法;
2. 用模态框弹出一对话框载入新网页并且定位在控件之下.

解决方案 »

  1.   

    1. 
    <br><br>&nbsp; &nbsp; <input onfocus="mm(this)">
    <iframe frameborder=0 width=200 height=200 name=MzIframe id="MzIframe"
      style="display: none; position: absolute; z-index: 2"></iframe>
    <SCRIPT LANGUAGE="JavaScript">
    function getAbsPoint(e)
    {
      var x = e.offsetLeft, y = e.offsetTop;
      while(e=e.offsetParent){x += e.offsetLeft; y += e.offsetTop;}
      return {"x": x, "y": y};
    }
    function mm(e)
    {
      window.frames["MzIframe"].location.href = "http://community.csdn.net/Expert/topic/3820/3820249.xml?temp=.205456";
      var iframe = document.getElementById("MzIframe");
      var xy = getAbsPoint(e);
      iframe.style.top = xy.y + e.offsetHeight;
      iframe.style.left= xy.x;
      iframe.style.display = "";
    }
    </SCRIPT>
    // 关闭就是隐藏这个层 iframe.style.display = "none";
      

  2.   

    第二种解决方案:
    <br><br>&nbsp; &nbsp; <input onfocus="mm(this)">
    <SCRIPT LANGUAGE="JavaScript">
    function getAbsPoint(e)
    {
      var x = e.offsetLeft, y = e.offsetTop;
      while(e=e.offsetParent){x += e.offsetLeft; y += e.offsetTop;}
      return {"x": x, "y": y};
    }
    var m = ""
    function mm(e)
    {
      var url = "http://community.csdn.net/Expert/topic/3820/3820249.xml?temp=.205456";
      var cond= "dialogWidth: 200px; dialogHeight: 200px; status: no; help: no;";
      var xy = getAbsPoint(e);
      cond += "dialogTop: "+ (xy.y+2 + e.offsetHeight + window.screenTop - document.body.scrollTop) +"px;";
      cond += "dialogLeft: "+ (xy.x+2 + window.screenLeft - document.body.scrollLeft) +"px;";
      m = showModalDialog(url, "", cond);
    }
    </SCRIPT>