什么中间? 中键?如果是中键的话, 不加...修改 FF 的 onmouseout 事件...
用编程方法代替...新附件:
http://groups.google.com/group/shawlqiu/web/XContextMenu1%5BFix_eventout%5D.7z

解决方案 »

  1.   


    有人觉得需要 N级子菜单么...
    鄙人觉得没必要...
    如果有N人需要的话, N>5
    我会升级到2.0, 弄个无限级子菜单...
      

  2.   

    亲爱的 gzdiablo 同学, 批评了我两个很强的方面...
      

  3.   

    冬眠时间...再回一个, to: he_8134
    你可以在 style 目录自己重新建一个样式
    调用时设置 Instance.DefaultStyle 选择....to: gzdiablo
    如果可以用算法替代话, 一般我不会用正则, 正则除了IE支持效率良好, 其他浏览器不见得一样好...则
    至于结构嘛, 编程第一要则, 可扩展, 你觉得什么地方这个 ContextMenu 不可扩展?像下面这个东西, 结构和正则写得来不...?
    http://groups.google.com/group/shawlqiu/web/Styler1-2_2.7z
      

  4.   

    styler思想不错 实现得很好 
    不过问题依然存在 
    正则表达式还有待提高 
    程序结构依然以过程为主体 没有明确的分工 不过本身实现的功能就比较单一 也不好看出有什么很大的你的正则表达式*?使用太多 很多情况使用贪婪匹配完全可以实现 没必要用贪婪匹配
    程序结构的话是凭经验积累下来的 
    下面这个是我仿造EXT做的tab.这里是我的程序结构模式
    http://www.techease.com.cn/gzdiablo/tabcontrol/a2.html
      

  5.   

    to: gzdiablo 
    靠...别老拿正则说事, 正则也是一些离奇的算法拼起来的...
    不过 styler 结构确实不行....老早俺看着就不大爽, 暂时没时间升级...to: tantaiyizu
    开发期没考虑什么美观不美观, 我只考虑扩展..
      

  6.   

    题由我来出...Highlights 是一个高亮类, 鄙人写的, 主要技术为正则
    你如果能把效率提高 50%, 那我承认你比我强...不行的话给我闭嘴...http://shawlqiu.googlegroups.com/web/Highlights_v1-9_3.7z别说我黑, 让你给我写代码, 不行的话弄一个你以正则为主要技术写的东西, 我把效率提高 50%...
      

  7.   

    没很仔细看你的代码,不过看调用的页面,比较同意gzdiablo 的意见,代码没有明确分工,库跟调用者偶合太紧.比如菜单项添加比较麻烦,单击时添加自己的方法能否不修改库代码
      

  8.   

    不知楼上可否详细点...
    难道我要用设计模式设计客户端脚本? 
    工厂模式..., 当然, 里面还要带个模板模式...然后写成N个OBJECT, 可是JS没有Interface...
      

  9.   

    代码解析乃正则应用的最高境界 LZ既然写了这么多代码分析的东西 难怪被人说正则不行会不服气 
    大概看了一下你的代码 单在表达式的上面 想提高效率怕是很难
    但仍然看到不少 贪婪匹配就可以实现的功能LZ用了非贪婪匹配
      

  10.   

           if(re.test(tl.url))
           {
            var re_ = /^(f|ht)t(p|ps)\:\/\/[\w\-]+?\.[\S]+$/i;
    /*
    如果只是判断http(s)://www.xxx.com到没问题
    如果加上port 
    http://www.xxx.com:port
    ftp的 username:[email protected]:port怎么办
    */
            
            if(!re_.test(this[i].value))
            {
             bBln = false;
             arTemp[arTemp.length] = tlForm[i].name.bold().fontcolor('red')
             + ': invalid url address (' + tlForm[i].value.fontcolor('red') + '). ' +
             '<br/>correct url sample: http://www.google.com/'
            }
           } // end if 2       if(re.test(tl.number))
           {
            if(/[^0-9]/i.test(this[i].value))//如果是判断是否是数字的话 漏了负数和小数点
            {
             bBln = false;
             arTemp[arTemp.length] = this[i].name.bold().fontcolor('red') +
             ': character must be digital ' + ('[0123456789]').fontcolor('blue');
            } // end if 2 1
           } // end if 2  function fClearHtml(sSrc, bPadBr)
      {
       sSrc = sSrc.replace(/<[^>]*?>/g, '');// 没必要用非贪婪
       sSrc = sSrc.replace(/\r\n[\s]*\r/g, '\r');// /\r?\n[\s*]/g
       sSrc = sSrc.replace(/^(\r\n|\r|\n)|\n$/g, '');/^(\r?\n|\r)&/g
       sSrc = sSrc.split('\n');
       
       for(var i = 0, j = sSrc.length; i < j; i++ )
       {
        sSrc[i] = sSrc[i].replace(/^\s+|\s+$/g, '');
       }
       
       if(bPadBr)sSrc = sSrc.join('<br/>');
       else sSrc = sSrc.join('\n');
       return sSrc;
      } // end function fClearHtml(sSrc, bPadBr) // shawl.qiu code
      

  11.   

    楼主应该是C/C++/C#程序高手吧?
    代码是function __XContextMenu_HiddenAllMenu()

      for(var i=0, j=window.__XContextMenu_SET.length; i<j; i++)
     {
      window.__XContextMenu_SET[i].style.display = "none";
     }
    }notfunction __XContextMenu_HiddenAllMenu(){ 
      for(var i=0, j=window.__XContextMenu_SET.length; i<j; i++){
      window.__XContextMenu_SET[i].style.display = "none";
     }
    }
      

  12.   

    哦...
    加楼上, 俺学的杂, 基本上什么都会点....to gzdiablo:
    几年前我就觉得正则没玩头...
    所不同的是不同语言的使用...
    所以嘛, 本来我不想在正则上叫板, 可是你老叫....至于程序结构嘛, 使用JS没啥说的...因为JS以小巧为上...
      

  13.   

    楼上...
    问题不是想象中那么简单, 如果是导航菜单, 很容易的...
    下面是一个无限级导航菜单, 
    http://shawlqiu.googlegroups.com/web/XMenu2.7z
    类似 XMenu 这样的东西我也写了几个...不过右键菜单要考虑的问题多了去...