ie 下的select是很特殊的,或许你只能用层模拟一个select了

解决方案 »

  1.   

    在层中加一个iframe
    <iframe src="javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; width:100px; height:200px; z-index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';"></iframe>
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY>
    <TABLE WIDTH=300 BORDER=1 CELLPADDING=1 CELLSPACING=1 bordercolor='#FFFFFF' bgcolor='lightblue' style='cursor:hand'>
    <TR>
    <TD onmouseover="showMenu(this,'&acute;ó&sup2;&Euml;11,&acute;ó&sup2;&Euml;12,&acute;ó&sup2;&Euml;13'); ">&Ouml;÷&sup2;&Euml;1</TD>
    <TD onmouseover="showMenu(this,'&acute;ó&sup2;&Euml;21,&acute;ó&sup2;&Euml;22' );">&Ouml;÷&sup2;&Euml;2</TD>
    <TD onmouseover="showMenu(this,'&acute;ó&sup2;&Euml;31,&acute;ó&sup2;&Euml;32'); ">&Ouml;÷&sup2;&Euml;3</TD>
    </TR>
    </TABLE>
    <select>
    <option>A</option>
    <option>B</option>
    <option>C</option>
    </select><SCRIPT>
    var oPopup = window.createPopup();
    function showMenu(obj,S)
    {
    var oPopBody ,rows,Arr;
    var oPopBody = oPopup.document.body;
    oPopBody.style.backgroundColor = "lightblue";
    oPopBody.style.border = "solid #eeeeee 1px";
    Arr=S.split(",");
    oPopBody.innerHTML = HTML(Arr);
    rows=Arr.length;
    oPopup.show(obj.offsetLeft + 10, obj.offsetTop + 40, 105, rows * 31, document.body) ;
    }
    function HTML(A)
    {
    var str="<TABLE WIDTH=300 BORDER=1 CELLPADDING=1 CELLSPACING=1 bordercolor='#FFFFFF' bgcolor='lightblue' style='cursor:hand'>";
    for (StrA in A)
    {
    str+="<TR><TD>" + A[StrA] + "</TD></TR>" ;
    }
    str+= "</TABLE>" ;
    return(str);
    }
    </SCRIPT>
    </BODY>
    </HTML>
      

  3.   

    select和object都不受控制的,除了用iframe,还可以用隐藏select和object对象的方法。var leftX=0, rightX=0, topY=0, bottomY=0;function calculateSumOffset(idItem, offsetName) {
    var totalOffset = 0;
    var item = eval('idItem');
    do {
    totalOffset += eval('item.'+offsetName);
    item = eval('item.offsetParent');
    } while (item != null);
    return totalOffset;
    }function hideElement(elmID) {
    for (i = 0; i < document.all.tags(elmID).length; i++) {
    obj = document.all.tags(elmID)[i];
    if (! obj || ! obj.offsetParent)
    continue; // Find the element's offsetTop and offsetLeft relative to the BODY tag.
    objLeft   = calculateSumOffset(obj, 'offsetLeft');
    objTop    = calculateSumOffset(obj, 'offsetTop'); if (leftX > (objLeft + obj.offsetWidth) || objLeft > rightX) ;
    else if (topY> (objTop + obj.offsetHeight) || objTop > bottomY || ) ;
    else obj.style.visibility = "hidden";
    }
    }function showElement(elmID) {
    for (i = 0; i < document.all.tags(elmID).length; i++) {
    obj = document.all.tags(elmID)[i];
    if (! obj || ! obj.offsetParent)
    continue;
    obj.style.visibility = "";
    }
    }function hideAll() {
    hideElement("SELECT");
    hideElement("OBJECT");
    }function showAll() {
    showElement("SELECT");
    showElement("OBJECT");
    }
      

  4.   

    这段代码可以把leftX, rightX, topY, bottomY范围内的SELECT和OBJECT隐藏,不过隐藏后记得要还原回来喔var leftX=0, rightX=0, topY=0, bottomY=0;function calculateSumOffset(idItem, offsetName) {
    var totalOffset = 0;
    var item = eval('idItem');
    do {
    totalOffset += eval('item.'+offsetName);
    item = eval('item.offsetParent');
    } while (item != null);
    return totalOffset;
    }function hideElement(elmID) {
    for (i = 0; i < document.all.tags(elmID).length; i++) {
    obj = document.all.tags(elmID)[i];
    if (! obj || ! obj.offsetParent)
    continue; // Find the element's offsetTop and offsetLeft relative to the BODY tag.
    objLeft   = calculateSumOffset(obj, 'offsetLeft');
    objTop    = calculateSumOffset(obj, 'offsetTop'); if (leftX > (objLeft + obj.offsetWidth) || objLeft > rightX) ;
    else if (topY> (objTop + obj.offsetHeight) || objTop > bottomY) ;
    else obj.style.visibility = "hidden";
    }
    }function showElement(elmID) {
    for (i = 0; i < document.all.tags(elmID).length; i++) {
    obj = document.all.tags(elmID)[i];
    if (! obj || ! obj.offsetParent)
    continue;
    obj.style.visibility = "";
    }
    }function hideAll() {
    hideElement("SELECT");
    hideElement("OBJECT");
    }function showAll() {
    showElement("SELECT");
    showElement("OBJECT");
    }