是不是打开popwindow的时候,焦点转移到其它的地方了The pop-up window is initially in a hidden state.When an element has focus and causes a popup to appear, the element does not lose focus. Because of this, an onblur event associated with an element that creates a popup will not occur when the popup is displayed. 

解决方案 »

  1.   

    <script language="JavaScript">
    var kc_menu_top = "<html><head><link href=\"../system/themes/blue/MenuArea.css\" type=\"text/css\" rel=\"stylesheet\"></head><body scroll=no MONOSPACE><table width=120 border=0 class=Menu cellpadding=0 cellspacing=1><tr><td>";
    var kc_menu_end = "</td></tr></table></body></html>";
    var i=0;

    function creat_menu(s_Event, menu_Image, menu_title)
    {
    i=i+1;
    var menu_row = "";
    menu_row = "<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td width=24 class=menu2 height=22 valign=middle id=td"+i+"><img src=/kc/images/textedit/"+menu_Image+" width=20 height=20 align=absmiddle></td><td height=22 class=MouseOut onMouseOver=\"this.className='MouseOver';td"+i+".className='Menu2Over'\" onMouseOut=\"this.className='MouseOut';td"+i+".className='menu2'\">&nbsp;&nbsp;"+menu_title+"</td></tr></table>"
    return menu_row;
    }
    function menu_date1(menuid)
    {
    var kc_s_Menu = "";
    var kcmenu_width = 120;
    var kcmenu_height = 0;
    var kcmenu_lefter = 300;
    var kcmenu_topper = 300;
    var oPopupMenu = window.createPopup();
        var oPopDocument = oPopupMenu.document;
        var oPopBody = oPopupMenu.document.body;
     
    switch(menuid){
    case "z1":
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "填加用户")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "修改用户")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "删除用户")
    kcmenu_height = 86;
    break;
    case "z2":
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "花生糖...")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "单元格属性...")
    kcmenu_height = 86;
    break;

    }
    s_Menu = kc_menu_top + kc_s_Menu + kc_menu_end;
    //oPopDocument.open();
    //oPopDocument.write(s_Menu);oPopBody.innerHTML = "<table height=200 width=200 bgcolor=red><tr><td>fdsfds</td></tr></table>";
    oPopupMenu.show(kcmenu_lefter,kcmenu_topper, kcmenu_width, kcmenu_height,document.body);
    return false;
    }</script>
      

  2.   


    menu_date1("z1")//加上
    </script>
      

  3.   

    creat_menu 里的代码暂时就别看了,为了测试方便用innerHTML,menu_date1是在iframe里调用的
      

  4.   

    还没明白吗..根本就还没有调用函数,怎么会出来?<script language="JavaScript">
    var kc_menu_top = "<html><head><link href=\"../system/themes/blue/MenuArea.css\" type=\"text/css\" rel=\"stylesheet\"></head><body scroll=no MONOSPACE><table width=120 border=0 class=Menu cellpadding=0 cellspacing=1><tr><td>";
    var kc_menu_end = "</td></tr></table></body></html>";
    var i=0;

    function creat_menu(s_Event, menu_Image, menu_title)
    {
    i=i+1;
    var menu_row = "";
    menu_row = "<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td width=24 class=menu2 height=22 valign=middle id=td"+i+"><img src=/kc/images/textedit/"+menu_Image+" width=20 height=20 align=absmiddle></td><td height=22 class=MouseOut onMouseOver=\"this.className='MouseOver';td"+i+".className='Menu2Over'\" onMouseOut=\"this.className='MouseOut';td"+i+".className='menu2'\">&nbsp;&nbsp;"+menu_title+"</td></tr></table>"
    return menu_row;
    }
    function menu_date1(menuid)
    {
    var kc_s_Menu = "";
    var kcmenu_width = 120;
    var kcmenu_height = 0;
    var kcmenu_lefter = 300;
    var kcmenu_topper = 300;
    var oPopupMenu = window.createPopup();
        var oPopDocument = oPopupMenu.document;
        var oPopBody = oPopupMenu.document.body;
     
    switch(menuid){
    case "z1":
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "填加用户")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "修改用户")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "删除用户")
    kcmenu_height = 86;
    break;
    case "z2":
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "花生糖...")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "单元格属性...")
    kcmenu_height = 86;
    break;

    }
    s_Menu = kc_menu_top + kc_s_Menu + kc_menu_end;
    //oPopDocument.open();
    //oPopDocument.write(s_Menu);oPopBody.innerHTML = "<table height=200 width=200 bgcolor=red><tr><td>fdsfds</td></tr></table>";
    oPopupMenu.show(kcmenu_lefter,kcmenu_topper, kcmenu_width, kcmenu_height,document.body);
    return false;
    }menu_date1("z1")//加上这个
    </script>
      

  5.   

    看来我还真得贴全了<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0" oncontextmenu="menu_date1('z1')">
            <tr> 
              
        <td>4333</td>
            </tr>
           
          </table>
      

  6.   

    教你怎么找错误1、在代码中加menu_date1("z1"),是可以出来的,证明代码没有问题2、oncontextmenu,也就是右键菜单,你点了右键之后,pop是可以出来的。但是一点左键,也就是pop onblur,而createPopop是blur就hidden,所以....你自己想了
      

  7.   

    你应该是想改成这样吧把这句改了~//oncontextmenu="menu_date1('z1')"
    oncontextmenu="menu_date1('z1');event.returnValue=false;"
      

  8.   

    那popwindow出现过吗?ie版本?应该考这些了。createPopup应该是only IE5.5+
      

  9.   

    我是IE6 SP1,在IFRAME里出现这样的情况,正常状态下就没有。怪了。
      

  10.   

    这段代码在我的机器上正常运行。<!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>
    <script language="JavaScript">
    var kc_menu_top = "<html><head><link href=\"../system/themes/blue/MenuArea.css\" type=\"text/css\" rel=\"stylesheet\"></head><body scroll=no MONOSPACE><table width=120 border=0 class=Menu cellpadding=0 cellspacing=1><tr><td>";
    var kc_menu_end = "</td></tr></table></body></html>";
    var i=0;

    function creat_menu(s_Event, menu_Image, menu_title)
    {
    i=i+1;
    var menu_row = "";
    menu_row = "<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td width=24 class=menu2 height=22 valign=middle id=td"+i+"><img src=/kc/images/textedit/"+menu_Image+" width=20 height=20 align=absmiddle></td><td height=22 class=MouseOut onMouseOver=\"this.className='MouseOver';td"+i+".className='Menu2Over'\" onMouseOut=\"this.className='MouseOut';td"+i+".className='menu2'\">&nbsp;&nbsp;"+menu_title+"</td></tr></table>"
    return menu_row;
    }
    function menu_date1(menuid)
    {
    var kc_s_Menu = "";
    var kcmenu_width = 120;
    var kcmenu_height = 0;
    var kcmenu_lefter = 300;
    var kcmenu_topper = 300;
    var oPopupMenu = window.createPopup();
        var oPopDocument = oPopupMenu.document;
        var oPopBody = oPopupMenu.document.body;
     
    switch(menuid){
    case "z1":
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "填加用户")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "修改用户")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "删除用户")
    kcmenu_height = 86;
    break;
    case "z2":
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "花生糖...")
    kc_s_Menu += creat_menu("TableCellProp()", "TableCellProp.gif", "单元格属性...")
    kcmenu_height = 86;
    break;

    }
    s_Menu = kc_menu_top + kc_s_Menu + kc_menu_end;
    //oPopDocument.open();
    //oPopDocument.write(s_Menu);oPopBody.innerHTML = "<table height=200 width=200 bgcolor=red><tr><td>fdsfds</td></tr></table>";
    oPopupMenu.show(kcmenu_lefter,kcmenu_topper, kcmenu_width, kcmenu_height,document.body);
    return false;
    }</script><BODY>
    <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0" oncontextmenu="menu_date1('z1');event.returnValue=false;">
            <tr> 
              
        <td>4333</td>
            </tr>
           
          </table></BODY>
    </HTML>
      

  11.   

    是这个地方,%u6842%u6797,卖弄一下(:D)
      

  12.   

    IE给人很多意外,要小心。所以,你现在应该是先生成最基本的popmenu,同样用oncontextmenu,如果可以,那么就一步一步的加上html string拼接,相当于“断点调试”
      

  13.   

    我的QQ是77091373,不过...最近不能上Q
      

  14.   

    问题找出来了,因为我用了 stedy 封装的HTC组件,可能和这个有关系。