FCK个性化功能设置

[size=x-large][size=x-small][size=medium][size=small]设置要显示的按钮,在文章最先面

1、为按钮增加图片:
FCK的所有按钮图片是存放在一个图片文件 里的,这一点比较独特,文件存放在相应皮肤目录下,如:/FCK/skins/silever/fck_strip.gif。通过Fireworks或 Phtoshop打开该文件可以发现一个很长的图片,里面包含所有按钮的图片,现在您可以在该图片的最下面增加您自定义的按钮,注意,每个按钮的尺寸是 16*16px。

2、为按钮增加功能代码
增 加按钮需要对FCK/editor/js目录中的两个核心文件进行修改:fckeditorcode_gecko.js和 fckeditorcode_ie.js,前者是使用于gecko核心的浏览器如Firefox等,而后者应用于以IE为核心的浏览器如MyIE(傲游) 等,这两个文件大体是相似的,仅有微小差别,在此我们基本无须担心。
修改的方法非常简单,基本是一个照葫芦画瓢 的过程,首先我们找一个与我们将要添加的按钮功能相似的一个按钮,这里我们选择了Newpage,这是一个清空编辑器以备新建一个文件的按钮。首先我们修 改fckeditorcode_ie.js,fckeditorcode_gecko.js直接复制更改的代码就可以了。

打开 fckeditorcode_ie.js,这里需要说明的是,fckeditorcode_ie.js是多个文件合并经过代码优化的(即去掉了大部分换 行、空格、注释等)不是很容易阅读,而且这样一百多K的JS文件用Dreamweaver、ZDE等工具打开后CPU立刻升至100%,相信计算机就变成 痴呆一样了,经过一翻比较,发现曾被我认为一文不值的Golive竟然可以轻松打开该文件并快速编辑!(!VS也可以)不管你用什么软件反正能打开并编辑就行了。以关键词Newpage进行查找,你会发现一个按钮的功能定义分三大部分:

A、功能原型
// 按钮功能原型
var FCKNewPageCommand=function(){this.Name='NewPage';};
FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};
FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};

var FCKMyAlbumCommand=function(){this.Name='DISPLAY: none';};
FCKMyAlbumCommand.prototype.Execute=function(){if(typeof(parent.showMyAlbum)=="function"){parent.showMyAlbum(FCK);}else{alert(FCKLang.NoAlbum);}};
FCKMyAlbumCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};
(!showMyAlbum应为函数 放在调用编辑器的页面里)
B、功能的实例化
case 'NewPage':B=new FCKNewPageCommand();break;
case 'MyAlbum':B=new FCKMyAlbumCommand();break;

C、按钮的显示
case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;
case 'MyAlbum':B=new FCKToolbarButton('MyAlbum',FCKLang.MyAlbum,null,null,true,null,67);break;
上面代码中第一部分是Newpage的原代码,后一部分是我们自定义的代码,您一看应该明白怎么回事了吧?仅红色部分和名称不同而已!而红色部分就是我们的自定义功能。
FCKLang是语言包对象,您只要打开FCK/editor/lang/下面的相应语言包添加相应的名称属性就可以了,比如:MyAlbum打开我的像册。注意大小写!至此我们的添加工作已完成。

但是,接着发现有个问题,就是怎么往编辑域内插入HTML代码了,忽然想起FCK自带的API似乎有这个功能,于是就去示例页查找,终于在/FCKeditor/_samples/html/sample08.html找到方法了.用

var oEditor = FCKeditorAPI.GetInstance('content'); if ( oEditor.EditMode FCK_EDITMODE_WYSIWYG ){oEditor.InsertHtml('<p>----------||----------</p>');}else{alert ('不能在源代码模式下进行该操作!');}

代替

var oEditor = FCKeditorAPI.GetInstance('content'); if ( oEditor.EditMode FCK_EDITMODE_WYSIWYG ){oEditor.InsertHtml('<p>----------||----------</p>');}else{alert ('不能在源代码模式下进行该操作!');}

这一段

FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;

注意:FCKeditorAPI.GetInstance('content'); 其中content是编辑器的名称

这里可以这样写

function showMyAlbum(oEditor) {
if ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG ){oEditor.InsertHtml('<p>Success! </p>');}else{alert ('不能在源代码模式下进行该操作!');}
}

这样就可以在页面里自定义编辑器id而不用更改函数

fckconfig.js里面的

FCKConfig.ToolbarSets["Default"] = [
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['FitWindow','ShowBlocks','-','Cowboy'] // No comma for the last row.

在这里设置要显示的按钮
[/size][/size][/size][/size]

你可能感兴趣的:(浏览器,prototype,IE,fckeditor,Dreamweaver)