这是IE的Bug,用DIV做的菜单遇到Select都会被挡住。
建议使用 createpopup 来做菜单,就能不被挡住了

解决方案 »

  1.   

    那就请高手帮我在原来的基础上修改成使用 createpopup 的嘛
      

  2.   

    <style id=s>
    <!--
    body{font-family:Verdana,宋体;font-size:9pt;color:#ff0099;cursor:default}
    table,TD,DIV{font-family:宋体;font-size:9pt;cursor:default}
    A{text-decoration: none;color:red} 
    .yellow {
    BORDER-left: #8a6100 2px solid; BORDER-TOP: #ffe3a4 2px solid; BORDER-LEFT: #ffe3a4 2px solid; COLOR: #ff0099; BORDER-BOTTOM: #8a6100 2px solid; BACKGROUND-COLOR: #e19d00
    }
    .blue {
    BORDER-left: #002200 2px solid; BORDER-TOP: #a6c1df 2px solid; BORDER-LEFT: #a6c1df 2px solid; COLOR: #ffffff; BORDER-BOTTOM: #002200 2px solid; BACKGROUND-COLOR: #3a6ea5
    }
    .green {
    BORDER-left: #002200 2px solid; BORDER-TOP: #b9ffb9 2px solid; BORDER-LEFT: #b9ffb9 2px solid; COLOR: #ff0099; BORDER-BOTTOM: #002200 2px solid; BACKGROUND-COLOR: #008000
    }
    .menu {
    BORDER-left: #000000 2px solid; BORDER-TOP: #ffffff 2px solid; BORDER-LEFT: #ffffff 2px solid; COLOR: #000080; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #d8d8d0
    }
    .menu1 {
    BORDER-left: #000000 2px solid; BORDER-TOP: #adbac9 2px solid; BORDER-LEFT: #adbac9 2px solid; COLOR: #ffffff; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #637994
    }
    .blue1 {
    BORDER-left: #000000 2px solid; BORDER-TOP: #d0ecff 2px solid; BORDER-LEFT: #d0ecff 2px solid; COLOR: #ff0099; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #0099ff
    }
    .black {
    BORDER-left: #000000 2px solid; BORDER-TOP: #d0d0d0 2px solid; BORDER-LEFT: #d0d0d0 2px solid; COLOR: #ffffff; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #ff9900
    }
    .up{ background-color: #b9ffb9; border-left: 2 solid #A6C1DF;border-left: 2 solid #002200; border-top: 2 solid #A6C1DF; border-bottom: 2 solid #002200 }
    .link{font-family:宋体}
    .overlink{background-color:highlight;color:highlighttext;font-family:宋体;cursor:default}
    -->
    </style>
    <script>
    function c(css)
    {ie5menu.className=css;}
    function link(act,txt)
    {document.write("<div class=link onMouseOver=this.className='overlink' onMouseOut=this.className='link' style='padding-left:16;padding-top:1;padding-bottom:1' onclick="+act+">"+txt+"</div>")}function showmenuie5(){
    var leftedge=document.body.clientWidth-event.clientX-100
    var bottomedge=document.body.clientHeight-event.clientY-25
    if (leftedge<ie5menu.offsetWidth)
    ie5menu.style.left=document.body.scrollLeft+event.clientX-ie5menu.offsetWidth;
    else
    ie5menu.style.left=document.body.scrollLeft+event.clientX
    if (bottomedge<ie5menu.offsetHeight)
    ie5menu.style.top=document.body.scrollTop+event.clientY-ie5menu.offsetHeight
    else
    ie5menu.style.top=document.body.scrollTop+event.clientY
    ie5menu.style.visibility="visible"
    return false}
    function hidemenuie5(){
    ie5menu.style.visibility="hidden"}
    function pop1(win){
    window.open(win,'','')}
    </script><div id=ie5menu class=up style="text-align: left;position: absolute; visibility: hidden; width: 85px; z-index: 200;padding:1px">
    <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>
    <script>
    link('youjian()','修改记录');
    link('youjian1()','删除记录');
    </script>
    </div>
    <SCRIPT language=JavaScript>
    if (document.all&&window.print){
    document.oncontextmenu=showmenuie5
    document.body.onclick=hidemenuie5}
    </SCRIPT>
    <select name="select">
      <option value="aaa">aa</option>
    </select>
      

  3.   

    用层做右键菜单效率比较高,还可以做成透明的,被下拉框遮住算是一个bug,只要加入一个
    <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>
    就万事大吉了
      

  4.   

    加在右键弹出的层里,因为iframe的优先级高于select
      

  5.   

    原理与大花猫的代码相似,都是利用iframe当div的底,来盖住select:<head>
    <style id=s>
    <!--
    body{font-family:Verdana,宋体;font-size:9pt;color:#ff0099;cursor:default}
    table,TD,DIV{font-family:宋体;font-size:9pt;cursor:default}
    A{text-decoration: none;color:red} 
    .yellow {
    BORDER-left: #8a6100 2px solid; BORDER-TOP: #ffe3a4 2px solid; BORDER-LEFT: #ffe3a4 2px solid; COLOR: #ff0099; BORDER-BOTTOM: #8a6100 2px solid; BACKGROUND-COLOR: #e19d00
    }
    .blue {
    BORDER-left: #002200 2px solid; BORDER-TOP: #a6c1df 2px solid; BORDER-LEFT: #a6c1df 2px solid; COLOR: #ffffff; BORDER-BOTTOM: #002200 2px solid; BACKGROUND-COLOR: #3a6ea5
    }
    .green {
    BORDER-left: #002200 2px solid; BORDER-TOP: #b9ffb9 2px solid; BORDER-LEFT: #b9ffb9 2px solid; COLOR: #ff0099; BORDER-BOTTOM: #002200 2px solid; BACKGROUND-COLOR: #008000
    }
    .menu {
    BORDER-left: #000000 2px solid; BORDER-TOP: #ffffff 2px solid; BORDER-LEFT: #ffffff 2px solid; COLOR: #000080; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #d8d8d0
    }
    .menu1 {
    BORDER-left: #000000 2px solid; BORDER-TOP: #adbac9 2px solid; BORDER-LEFT: #adbac9 2px solid; COLOR: #ffffff; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #637994
    }
    .blue1 {
    BORDER-left: #000000 2px solid; BORDER-TOP: #d0ecff 2px solid; BORDER-LEFT: #d0ecff 2px solid; COLOR: #ff0099; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #0099ff
    }
    .black {
    BORDER-left: #000000 2px solid; BORDER-TOP: #d0d0d0 2px solid; BORDER-LEFT: #d0d0d0 2px solid; COLOR: #ffffff; BORDER-BOTTOM: #000000 2px solid; BACKGROUND-COLOR: #ff9900
    }
    .up{ background-color: #b9ffb9; border-left: 2 solid #A6C1DF;border-left: 2 solid #002200; border-top: 2 solid #A6C1DF; border-bottom: 2 solid #002200 }
    .link{font-family:宋体}
    .overlink{background-color:highlight;color:highlighttext;font-family:宋体;cursor:default}
    .backgroundIframe{
    position:absolute;
    z-index:199; 
    top:expression(this.previousSibling.offsetTop);
    left:expression(this.previousSibling.offsetLeft);
    height:expression(this.previousSibling.offsetHeight);
    width:85;
    visibility:expression(this.previousSibling.style.visibility);
    }-->
    </style>
    <script>
    function c(css)
    {ie5menu.className=css;}
    function link(act,txt)
    {document.write("<div class=link onMouseOver=this.className='overlink' onMouseOut=this.className='link' style='padding-left:16;padding-top:1;padding-bottom:1' onclick="+act+">"+txt+"</div>")}function showmenuie5(){
    var leftedge=document.body.clientWidth-event.clientX-100
    var bottomedge=document.body.clientHeight-event.clientY-25
    if (leftedge<ie5menu.offsetWidth)
    ie5menu.style.left=document.body.scrollLeft+event.clientX-ie5menu.offsetWidth;
    else
    ie5menu.style.left=document.body.scrollLeft+event.clientX
    if (bottomedge<ie5menu.offsetHeight)
    ie5menu.style.top=document.body.scrollTop+event.clientY-ie5menu.offsetHeight
    else
    ie5menu.style.top=document.body.scrollTop+event.clientY
    ie5menu.style.visibility="visible"
    return false}
    function hidemenuie5(){
    ie5menu.style.visibility="hidden"}
    function pop1(win){
    window.open(win,'','')}
    </script></head>
    <select><option>abcde</select>
    <div id=ie5menu class=up style="text-align: left;position: absolute; visibility: hidden; width: 85px; z-index: 200;padding:1px">
    <script>
    link('youjian()','修改记录');
    link('youjian1()','删除记录');
    </script>
    </div><iframe class="backgroundIframe"></iframe>
    <SCRIPT language=JavaScript>
    if (document.all&&window.print){
    document.oncontextmenu=showmenuie5
    document.body.onclick=hidemenuie5}
    </SCRIPT>