注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 网站运营网页脚本 → 文章内容

实战FCKeditor,添加自定义工具栏---插入代码(二)

作者:佚名 来源:http://www.eiya.net/ 发布时间:2007-9-21 0:59:07

 今天,我们开始修改JS代码了,可惜我的正则不好,不能有很大改动,只好一点点来了。废话不说,开工:

 

=====================以下为双鱼编辑器中Code.js文件的代码修改=================

1、双鱼编辑器本身对代码的空格支持不够好,因此我在“str = "<div style=\""+CodeDivStyle+"\">" + str + "</div>"; “后面加了一句(也一定要在这句之后):

str = str.replace(/\s{2}/g,"  ");

意思是替换连续2个空格(不能为一个,否则会把不该替换的也替换)为可显示的HTML代码 ,这样,代码各行之前就和原代码一样,会有空格,代码看起来更加清晰。

 

2、格式化VBScript代码函数中,少了一些关键字,我们再加一些,查找“|While|With|Xor”,

在它之后加上:|Sub|Len|Right|Function|IsNull|IsEmpty|Left|Cint|Instr|Cstr|Replace|Chr|Error|Trim

|Mid|Instrrev|LCase|UCase|Hex诶呀,累了,不知道还有些什么,没加上的各位朋友自己加吧,头疼。

 

3、格式化SQL,有待高手来解决,,还有好多没改,目前就修改下注释,变为绿色;

搜索“str = str.replace(/([%\^\*\(\)\-\+=|\/,\.~])/gi,"<font color=\"#999999\">$1</font>");

把它和它下面一行都删除,之后在函数最后一行 “return (str); ”的前面加上:

str = FortmatCodeRemark_SQL(str);

现在写FortmatCodeRemark_SQL函数:

//SQL注释替换为绿色

function FortmatCodeRemark_SQL(str)

{

    str = str.replace(/(\/\*)([\s\S]*?)(\*\/)/g,

            function() {

                    var s = arguments[1];

                    if (arguments[2] != "")

                        s = "<font style=\"color:#008080\">"+s+ClearColorTag(arguments[2])+arguments[3]+"</font>";

                    else

                        s += arguments[3];

                    return(s);

                });

    str = str.replace(/([^\-])(\-{2})(.*)/g,

            function() {

                    var s;

                    if (arguments[3].substr(0,1) != "")

                        s = "<font style=\"color:#008080\">"+arguments[2]+ClearColorTag(arguments[3])+"</font>";

                    else

                        s = arguments[2]+arguments[3];

                    return(arguments[1]+s);

                });

    return(str);

}

 

搜索“str = str.replace(/(N)('.*?')/gi,

         function() {

              return (arguments[1]+"<font color=\"#FF0000\">"+arguments[2].replace(/<.*?>/g,"")+"</font>");

         });

更改为:“str = str.replace(/('.*?')/gi,

         function() {

              return ("<font color=\"#FF0000\">"+arguments[1].replace(/<.*?>/g,"")+"</font>");

         });

函数解决了注释为绿色,但是又把特殊符号变为灰色的功能取消了。。还不知道怎么解决。

 

4、搜索“// 双引号中关键字不变色”,把下面一段函数删除,正则有问题,会捣乱格式。

后面会加个函数,在各个格式化函数中调用。

     // 双引号中关键字不变色

     str = str.replace(/(")([\s\S]*?)\1/g,

              function() {

                   return(arguments[1]+arguments[2].replace(/(<[\s\S]*?>)/g,"")+arguments[1]);

              });

5、搜索“//  str = FormatBrace(str);”,把前面的斜杆删除,并把它的下面一句:

str = FormatValue(str);”放到函数最前面(防止把注释里的双引号中值颜色也变棕色)

6、新增函数:替换收缩图片;在格式化c#,vb.net,vbscript,jscript中相应地方添加该函数。

7、新增函数:双引号中关键字不变色;加在各格式化函数中。

8、增加个VB.NET格式化:

    搜索“case "SQL": str = FormatSQL(str,canCollapse); break;”,在其后加上:

    case "VB.NET": str = FormatVBDOTNET(str,canCollapse); break;

9、更改vbscript,jscript,加上折叠功能。

 

(以上6-9步代码较多,这里不放出,有兴趣的可以查看code.js。都有详细注释。)

 

 

终于,铁棒被我们磨成针了,现在,我们可以真正的使用插入代码功能,试一试,恩。感觉蛮好!上面的代码看着麻烦,,想研究的朋友可以看看,主要做个参考,我更改了什么。方便朋友们以后对这功能的增强。

 

好了,下面是源码的下载:

我的FCKeditor(经过精简,删除垃圾文件,保留全部功能,版本为2.4.1,已加入插入代码功能)
FCKeditor2.4.1.rar

插入代码时所更改的文件:(有自己FCKeditor的朋友可以直接下载覆盖)
Fckeditor.rar

                    --------by:
                                                                               zss1100
                                                                               2007.6.18 文章来自 http://www.eiya.net/ 

  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved