var HideElementTemp = new Array();
//点击菜单时,调用此的函数,菜单对象
function cal_hideElementAll(obj){ 
        cal_HideElement("IMG",obj);
        cal_HideElement("SELECT",obj);
        cal_HideElement("OBJECT",obj);
        cal_HideElement("IFRAME",obj);
}
function cal_HideElement(strElementTagName,obj){
try{
    var showDivElement = obj;
    var calendarDiv = obj);
    var intDivLeft = cal_GetOffsetLeft(showDivElement);
    var intDivTop = cal_GetOffsetTop(showDivElement);//+showDivElement.offsetHeight;
    for(i=0;i<window.document.all.tags(strElementTagName).length; i++){
var objTemp = window.document.all.tags(strElementTagName)[i];
if(!objTemp||!objTemp.offsetParent||objTemp==goYearSelect||objTemp==goMonthSelect)
    continue;
var intObjLeft=cal_GetOffsetLeft(objTemp);
var intObjTop=cal_GetOffsetTop(objTemp);
if(((intObjLeft+objTemp.clientWidth)>intDivLeft)&&
   (intObjLeft<intDivLeft+calendarDiv.style.posWidth)&&
   (intObjTop+objTemp.clientHeight>intDivTop)&&
   (intObjTop<intDivTop+calendarDiv.style.posHeight)){
    var intTempIndex=HideElementTemp.length;//已经有的长度
//save elementTagName is stutas
    HideElementTemp[intTempIndex]=new Array(objTemp,objTemp.style.visibility);
    objTemp.style.visibility="hidden";
        }
    }
}catch(err){
}
}function cal_ShowElement(){
    var i;
    for(i=0;i<HideElementTemp.length; i++){
var objTemp = HideElementTemp[i][0];
if(!objTemp||!objTemp.offsetParent)
    continue;
objTemp.style.visibility=HideElementTemp[i][1];
    }
    HideElementTemp=new Array();
}function cal_GetOffsetLeft(src){
    var set=0;
    if(src && src.name!="divMain"){
        if (src.offsetParent){
           set+=src.offsetLeft+cal_GetOffsetLeft(src.offsetParent);
}
if(src.tagName.toUpperCase()!="BODY"){
    var x=parseInt(src.scrollLeft,10);
    if(!isNaN(x))
            set-=x;
}
    }
    return set;
}function cal_GetOffsetTop(src){
    var set=0;
    if(src && src.name!="divMain"){
        if (src.offsetParent){
            set+=src.offsetTop+cal_GetOffsetTop(src.offsetParent);
   }
if(src.tagName.toUpperCase()!="BODY"){
    var y=parseInt(src.scrollTop,10);
    if(!isNaN(y))
set-=y;
}
    }
    return set;
}

解决方案 »

  1.   

    <style>
    .pad {position:absolute;display:none;z-index:100}
    </style><table>
    <tr>
     <td onclick="ShowPopMenu('pad1')">pad1</td>
     <td onclick="ShowPopMenu('pad2')">pad2</td>
    </tr>
    </table>
    <span id="pad1" class="pad">
     <iframe src=w2.htm width=100 height=100 frameborder=no style="position:relative;"></iframe>
    </span>
    <span id="pad2" class="pad">
     <iframe src=about:blank name=popmenu2 width=100 height=100 frameborder=no style="position:relative;"></iframe>
    </span><div style="z-index:0">
    <select>
    <option>aaa
    <option>bbb
    <option>ccc
    </select>
    <br>
    <iframe src=></iframe>
    <span id="view" style="position:absolute;z-index:0"></span>
    </div><script>
    function test(v) {
      v.innerHTML = "ssss<br><iframe src=w2.htm width=200 height=100 style=\"position:relative\"></iframe>";
    }popmenu2.document.write("aaaaaaa<br>ssssssssss<br>ccccccccc<br>tttttttt");function CloseAllPopMenu() {
      var i = 1;
      while(document.all["pad"+i]) {
        document.all["pad"+i].style.display = "none";
        i++;
      }
    }function ShowPopMenu(v) {
      var el = event.srcElement;
      v = document.all[v];
      CloseAllPopMenu();
      v.style.left = el.offsetLeft;
      v.style.display = "block";
    }</script>