<html>
<head><script language="javascript"></script></head>
<body onclick="div.style.display='none'">
<div id="div" >
<select MULTIPLE>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
<option>ddddddddddddddddddddddddddddd</option>
</script>
</select>
</div>
</body>
</html>

解决方案 »

  1.   

    <body>
    <div id='ice'>
    </div>
    </body>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function createSelect()
    {
    var ice = document.all.ice;
    var str = "<select name=t>"
    for (i=0;i<500;i++)
    {
    str += "<option value="+i+">第"+i+"项</option>";
    }
    str += "</select>";
    ice.innerHTML = str;
    }
    function document.onclick()
    {
    var ice = document.all.ice;
    if (event.srcElement.parentElement == ice)
    return;
    else
    ice.style.display = "none";
    }
    createSelect();
    //-->
    </SCRIPT>
      

  2.   

    <html>
    <head>
    <script language="javascript">
    function hideIt(){
    if((window.event.srcElement.tagName.toString().toUpperCase()=="BODY")||(window.event.srcElement.tagName.toString().toUpperCase()=="HTML")){
    document.all.layer1.style.display='none';
    return false;
    }
    var lname="layer1";
    if(window.event.srcElement.name.toString().toUpperCase()!=lname.toUpperCase()){
    var pe;
    while(true){
    pe=event.srcElement.parentElement
    if(pe.tagName.toString().toUpperCase()=="BODY"){
    document.all.layer1.style.display='none'
    break;
    return false;
    }else{
    if(pe.name!=lname){
    pe=pe.parentElement;
    }else{
    break;
    return false;
    }
    }
    }
    }
    }function init(){
    var tmpStr;
    tmpStr=""
    for(var i=1;i<=500;i++){
    tmpStr=tmpStr+"<option value="+i+">"+i+"</option>"
    }
    tmpStr="<select>"+tmpStr+"</select>"
    tmpStr="<div id='layer1' name='layer1' style='background-color:#999999;width:500px;height:400px'>"+tmpStr+"</div>"
    document.body.insertAdjacentHTML("BeforeEnd",tmpStr)
    }</script>
    </head>
    <body onload="init()" onclick="hideIt()">
    other content
    </body>
    </html>
      

  3.   

    <span><select id="sel"></select></span>
    <SCRIPT LANGUAGE="JavaScript">
    function addOption() {
        var s = document.getElementById("sel");
        var html = s.parentNode.innerHTML.match(/(^<.*sel[^>]*>)/)[0];
        var arr = [];
        for(var i=0;i<500;i++) {
            arr[arr.length] = '<option text="'+i+'">'+i+'</option>';
        }
        html += arr.join("") + "</select>";
        s.parentNode.innerHTML = html;
    }
    addOption();
    document.onclick=function()
    {
        e = window.event.srcElement;
        if(e.id!="sel"){sel.style.display='none'}
    }
    </SCRIPT>
      

  4.   

    其实更简单是用createPopup,今天才知道
      

  5.   

    ice_berg16(寻梦的稻草人) 的答案最符合我的要求,谢谢大家支持,我结贴了