FCKeditor使用详解
}
}
</script>
}
</script>
FCKEditor在Asp.net环境下的配置安装
不知道大家留意到没有了:
FreeTextbox 不开源了,虽然我还有它以前的开源版本。
CSDN用的这个在线编辑器很优秀。
它的名字叫做FCKEditor
它是开源的
与平台无关,最起码能支持 Asp, Asp.net , PHP
以前我一直用FreeTextBox(主要是从Community Server那里知道的)。但是发现它并不是想象中好用,主要是上传图片没有弄好。好了好了,言归正传,说说我们今天的主角,FCKEditor,怎么在Asp.net中部署吧。
首先,他的网站下载吧。这里要注意,你要下载两个ZIP文件,一个是Core,即核心文件,里面是整个FCKEditor的核心。第二个是For .net的组件。为了描述方便,我将真实文件名附上,以后要自己灵活修改啊。
下载的核心文件叫FCKeditor_2.3.1.zip
For .net 的文件叫FCKeditor.Net_2.2.zip
部署步骤:
解压FCKeditor_2.3.1.zip,将里面的FCKEditor复制到你的IIS主目录里面,其实要的效果是能够这样访问到就可以了 http://localhost/Fckeditor/ ,将http://localhost/Fckeditor/fckconfig.js的变量:
_FileBrowserLanguage,_QuickUploadLanguage 的值改为 aspx,不难做吧。
(可选)将复制好的FCKEditor里的以 '_' 开头的文件及文件夹删除,当然如果你是在开发也可以不删除,里面都是示例及调试页面。
解压缩FCKeditor.Net_2.2.zip,然后在VS.net 2003中添加新的控件那样添加,binReleaseFredCK.FCKeditorV2.dll 这个文件,呵呵,以后你就可以随便拖放这个控件了。
(重要)将上面的DLL文件复制到 http://localhost/FCKeditor/editor/filemanager/upload/aspx/bin/
然后在IIS设置中让 http://localhost/FCKeditor/editor/filemanager/upload/aspx/ 这个目录可以运行Aspx。同样,http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/ 也要重复上面的过程。
另外一种更加简单的方法是将FredCK.FCKeditorV2.dll 复制 http://localhost/FCKeditor/bin/ 目录下,然后在IIS中创建应用程序。
这一步的目的是让:
http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx
这两个文件能够工作。
好了,到此为止,你在aspx也里面拖入FCKEditor,将BasePath 设置为 /FCKEditor/就可以用了。
如果:
http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx 工作不正常
你在浏览服务器时,就会有XML Request Error:XXXXXXXXXXXXXX(500)错误。
http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx
你在上传图片时,按钮怎么按都没有反应的。
在fckeditor中添加右键菜单
现在网上介绍FCKEditor如何配置,如何精简的例子非常之多,如有需要可以google一下,此处不必赘述。现在介绍一下,如何自定义此编辑器,暂包括如何添加工具条上的item,产生响应,添加右键菜单。IT SEEMS VERY EASY!
闲言少叙,书归正传。
一、自定义右键菜单:
1、首先,在editor/lang/zh-cn.js里添加你所要添加的工具条item的名字,此文件定义了一个FCKLang变量,仿照里边的格式写哦,如:First: "第一",注意,如果是不在倒数第二行(倒数第一行是“}”),后边的这个逗号是一定要有的,不然网页中不会出现编辑器,笔者曾经犯过如此低级的错误,待醒悟后,找一僻静之所大嘴巴子招呼;呵呵,我们是中国人,自然在冒号后对应汉语,这也是将来在网页中显示的内容。
2、 之后,在editor/_source/internals/fckcommands.js 里新建一个command:case 'First': oCommand = new FCKFirstCommand ( 'First', FCKLang.First); break注意那个红色字体的FCKFirstCommand了么?这个是一个自定义的command,稍候将讨论它。
3、 然后,在editor/_source/internals/fckcontextmenu.js 添加一个context menu 。 在case 'Generic' : 下面添加如下: oGroup.Add( new FCKContextMenuItem( this, 'First', FCKLang.First, true ) ) ; 其中第四个布尔类型的参数,如果指定为true,说明菜单有图标,反之则无。在此,我指明了我所自定义的菜单是有图标的,那么我就应该把图标放在 editorskinsxxxtoolbar目录下,其中xxx就是你在你的配置文件里选择的编辑器的皮肤,但是我们的图标命名可是有学问的,必须是如FCKContextMenuItem构造函数(且这么叫它)第二个字符串参数的小写字母形式,如,这里我的图标被命名为first.gif了。 Ok,如此右键菜单就被添加上去了,运行你的网页,看看FCKEditor是否奏效?如果不奏效的话就要重新参考此文喽^_^。
4、然后,还有最关键的一步:用editor下的fckeditor.original.html网页的内容代替fckeditor.html的内容,同时不要忘记备份fckeditor.html文件!
5、现在开始讨论步骤2中的FCKFirstCommand。菜单添加上其了,你总得让丫拥有什么功能吧?好,在editor/_source/commandclasses/fck_othercommands.js里新建这个类:
一般建立好类后,还要建立两个静态函数:xxx .prototype.Execute,xxx .prototype.GetState。前者是事件处理函数,即点击了该右键菜单所要执行的功能全部写在这个函数,后者返回菜单的状态(可用?不可用?)。在此为了演示,我们实现一个最简单的功能: FCKPageCommand.prototype.Execute = function(){ window.alert("It works!");}够简单吧,只是不疼不痒的弹出一个提示框。当然,这里我们也可以不用自定义的FCKFirstCommand,而直接用FCKEditor定义好的command,比如 FCKDialogCommand,它也定义在fck_othercommands.js里,当然如果这样的话,弹出的会是一个dialog。再次运行网页,右击,点击你的自定义菜单,是否弹出提示框呢?
1、适时打开编辑器
很多时候,我们在打开页面的时候不需要直接打开编辑器,而在用到的时候才打开,这样一来有很好的用户体验,另一方面可以消除FCK在加载时对页面打开速度的影响,如图所示
点击“Open Editor"按钮后才打开编辑器界面
实现原理:使用JAVASCRIPT版的FCK,在页面加载时(未打开FCK),创建一个隐藏的TextArea 域,这个TextArea的name和ID要和创建的FCK实例名称一致,然后点击"Open Editor"按钮时,通过调用一段函数,使用FCK的ReplaceTextarea()方法来创建FCKeditor,代码如下
<script type="text/javascript">
<!--
function showFCK(){
var oFCKeditor = new FCKeditor( 'fbContent' ) ;
oFCKeditor.BasePath = '/FCKeditor/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.ReplaceTextarea() ;
}
//-->
</script>
<textarea name="fbContent" );
}
不知道大家留意到没有了:
FreeTextbox 不开源了,虽然我还有它以前的开源版本。
CSDN用的这个在线编辑器很优秀。
它的名字叫做FCKEditor
它是开源的
与平台无关,最起码能支持 Asp, Asp.net , PHP
以前我一直用FreeTextBox(主要是从Community Server那里知道的)。但是发现它并不是想象中好用,主要是上传图片没有弄好。好了好了,言归正传,说说我们今天的主角,FCKEditor,怎么在Asp.net中部署吧。
首先,他的网站下载吧。这里要注意,你要下载两个ZIP文件,一个是Core,即核心文件,里面是整个FCKEditor的核心。第二个是For .net的组件。为了描述方便,我将真实文件名附上,以后要自己灵活修改啊。
下载的核心文件叫FCKeditor_2.3.1.zip
For .net 的文件叫FCKeditor.Net_2.2.zip
部署步骤:
解压FCKeditor_2.3.1.zip,将里面的FCKEditor复制到你的IIS主目录里面,其实要的效果是能够这样访问到就可以了 http://localhost/Fckeditor/ ,将http://localhost/Fckeditor/fckconfig.js的变量:
_FileBrowserLanguage,_QuickUploadLanguage 的值改为 aspx,不难做吧。
(可选)将复制好的FCKEditor里的以 '_' 开头的文件及文件夹删除,当然如果你是在开发也可以不删除,里面都是示例及调试页面。
解压缩FCKeditor.Net_2.2.zip,然后在VS.net 2003中添加新的控件那样添加,binReleaseFredCK.FCKeditorV2.dll 这个文件,呵呵,以后你就可以随便拖放这个控件了。
(重要)将上面的DLL文件复制到 http://localhost/FCKeditor/editor/filemanager/upload/aspx/bin/
然后在IIS设置中让 http://localhost/FCKeditor/editor/filemanager/upload/aspx/ 这个目录可以运行Aspx。同样,http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/ 也要重复上面的过程。
另外一种更加简单的方法是将FredCK.FCKeditorV2.dll 复制 http://localhost/FCKeditor/bin/ 目录下,然后在IIS中创建应用程序。
这一步的目的是让:
http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx
这两个文件能够工作。
好了,到此为止,你在aspx也里面拖入FCKEditor,将BasePath 设置为 /FCKEditor/就可以用了。
如果:
http://localhost/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx 工作不正常
你在浏览服务器时,就会有XML Request Error:XXXXXXXXXXXXXX(500)错误。
http://localhost/FCKeditor/editor/filemanager/upload/aspx/upload.aspx
你在上传图片时,按钮怎么按都没有反应的。
在fckeditor中添加右键菜单
现在网上介绍FCKEditor如何配置,如何精简的例子非常之多,如有需要可以google一下,此处不必赘述。现在介绍一下,如何自定义此编辑器,暂包括如何添加工具条上的item,产生响应,添加右键菜单。IT SEEMS VERY EASY!
闲言少叙,书归正传。
一、自定义右键菜单:
1、首先,在editor/lang/zh-cn.js里添加你所要添加的工具条item的名字,此文件定义了一个FCKLang变量,仿照里边的格式写哦,如:First: "第一",注意,如果是不在倒数第二行(倒数第一行是“}”),后边的这个逗号是一定要有的,不然网页中不会出现编辑器,笔者曾经犯过如此低级的错误,待醒悟后,找一僻静之所大嘴巴子招呼;呵呵,我们是中国人,自然在冒号后对应汉语,这也是将来在网页中显示的内容。
2、 之后,在editor/_source/internals/fckcommands.js 里新建一个command:case 'First': oCommand = new FCKFirstCommand ( 'First', FCKLang.First); break注意那个红色字体的FCKFirstCommand了么?这个是一个自定义的command,稍候将讨论它。
3、 然后,在editor/_source/internals/fckcontextmenu.js 添加一个context menu 。 在case 'Generic' : 下面添加如下: oGroup.Add( new FCKContextMenuItem( this, 'First', FCKLang.First, true ) ) ; 其中第四个布尔类型的参数,如果指定为true,说明菜单有图标,反之则无。在此,我指明了我所自定义的菜单是有图标的,那么我就应该把图标放在 editorskinsxxxtoolbar目录下,其中xxx就是你在你的配置文件里选择的编辑器的皮肤,但是我们的图标命名可是有学问的,必须是如FCKContextMenuItem构造函数(且这么叫它)第二个字符串参数的小写字母形式,如,这里我的图标被命名为first.gif了。 Ok,如此右键菜单就被添加上去了,运行你的网页,看看FCKEditor是否奏效?如果不奏效的话就要重新参考此文喽^_^。
4、然后,还有最关键的一步:用editor下的fckeditor.original.html网页的内容代替fckeditor.html的内容,同时不要忘记备份fckeditor.html文件!
5、现在开始讨论步骤2中的FCKFirstCommand。菜单添加上其了,你总得让丫拥有什么功能吧?好,在editor/_source/commandclasses/fck_othercommands.js里新建这个类:
一般建立好类后,还要建立两个静态函数:xxx .prototype.Execute,xxx .prototype.GetState。前者是事件处理函数,即点击了该右键菜单所要执行的功能全部写在这个函数,后者返回菜单的状态(可用?不可用?)。在此为了演示,我们实现一个最简单的功能: FCKPageCommand.prototype.Execute = function(){ window.alert("It works!");}够简单吧,只是不疼不痒的弹出一个提示框。当然,这里我们也可以不用自定义的FCKFirstCommand,而直接用FCKEditor定义好的command,比如 FCKDialogCommand,它也定义在fck_othercommands.js里,当然如果这样的话,弹出的会是一个dialog。再次运行网页,右击,点击你的自定义菜单,是否弹出提示框呢?
1、适时打开编辑器
很多时候,我们在打开页面的时候不需要直接打开编辑器,而在用到的时候才打开,这样一来有很好的用户体验,另一方面可以消除FCK在加载时对页面打开速度的影响,如图所示
点击“Open Editor"按钮后才打开编辑器界面
实现原理:使用JAVASCRIPT版的FCK,在页面加载时(未打开FCK),创建一个隐藏的TextArea 域,这个TextArea的name和ID要和创建的FCK实例名称一致,然后点击"Open Editor"按钮时,通过调用一段函数,使用FCK的ReplaceTextarea()方法来创建FCKeditor,代码如下
<script type="text/javascript">
<!--
function showFCK(){
var oFCKeditor = new FCKeditor( 'fbContent' ) ;
oFCKeditor.BasePath = '/FCKeditor/' ;
oFCKeditor.ToolbarSet = 'Basic' ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '200' ;
oFCKeditor.ReplaceTextarea() ;
}
//-->
</script>
<textarea name="fbContent" );
}