那些年,我还在学习使用FCK

那些年做asp.net开发时,时常会用到FCKEditor,FCK是一个强大的编译器,在web开发中时常使用到,不仅可以对文件进行编辑,而且可以上传图片与视频,但是在上传时也有一些地方需要修改,主要是对session的控件,这样可以安全一点

一、FCK在asp.net中的使用

1、下载fck编译器,js文件与.dll文件,加入到.net的项目中  

 

2、在.net的配置文件中添加配置节,指明fck的js目录与上传路径

  <appSettings>

<add key="FCKeditor:BasePath" value="~/fckeditor/"/>

<add key="FCKeditor:UserFilesPath" value="~/UploadFiles/"/>

</appSettings>

3、将Fck添加到页面上,它与在其它的页面上使用不同,FCK在.net中作为一个控件使用,直接拖到页面中就可以使用了,代码如下:  

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="FckTest.aspx.cs" Inherits="FckTest" %> 

<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<div>

<FCKeditorV2:FCKeditor ID="FCKeditor2" runat="server" Height="500" Width="600">

</FCKeditorV2:FCKeditor>

</div>

</form>

</body>

</html>

4、运行结果:

5、Session设置

private bool CheckAuthentication()

{

// WARNING : DO NOT simply return "true". By doing so, you are allowing

// "anyone" to upload and list the files in your server. You must implement

// some kind of session validation here. Even something very simple as...

//

// return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );

//

// ... where Session[ "IsAuthorized" ] is set to "true" as soon as the

// user logs in your system.



//return false;

HttpSessionState tempSession = System.Web.HttpContext.Current.Session;

if (tempSession["UserID"] != null)

return true;

else

return false;

}

目录文件:jcceditor\editor\filemanager\connectors\aspx\UploadFile\config.ascx 

二、FCKeditor添加鼠标右键菜单

1、  找到fckeditor中的\fckeditor\editor\lang下的zh-cn.js,按文件中的样式,添加一个自已需要的标签,例如:Fillin: "设为填空",这样就只设置了这个东东,并没有显示在右键中;

2、  这一是很关键的一步,需要找到fckeditor中的fckeditor\editor\js下 fckeditorcode_gecko.js文件,这个文件是非IE的浏览器,若是IE就修改对应的文件fckeditorcode_ie.js;

3、  在fckeditorcode_gecko.js中找到FCK_ContextMenu_GetListener(A),在  menu.AddItem('Paste', FCKLang.Paste, 9, FCKCommands.GetCommand('Paste').GetState() == -1);这一句后面添上自定义的按钮的代码:

menu.AddItem('Fillin', FCKLang.Fillin, 10, FCKCommands.GetCommand

('Fillin').GetState() == FCK_TRISTATE_DISABLED); //* modify whc by 2010 07

4、  找到该文件下的FCKCommands.GetCommand这一行,添加一个case语句,其新建一个对象,来自自定义,如:case 'Fillin': B = new FCKFillinCommand();//* modify whc by 2010 07

5、 这一步,大家都很清楚了,就是添加上对应的命令,同样是在些文件下,找到添加

命令的位置,把自定义的命令加上去就可以了,如:

找到:FCKDialogCommand,在些添加我们的代码,

var FCKFillinCommand = function() {//* whc modify by 2010

this.Name = 'Fillin';

};

FCKFillinCommand.prototype.Execute = function() {

FCKUndo.SaveUndoStep();

if (this.IsActive) FCKStyles.RemoveStyle("_FCK_Fillin");

else FCKStyles.ApplyStyle("_FCK_Fillin");//我们这里强行给了一个样式名(StyleName)

FCK.Focus();

FCK.Events.FireEvent('OnSelectionChange');

// alert("你点击了设为填空!!!");

};

FCKFillinCommand.prototype.GetState = function() {

return (FCK.FillinMode == 0 ? 0 : 1);

};

6、 修改样式,在fckeditor中找到fckconfig.js,添加一个样式,当然应前面几个步骤对应,找到FCKConfig.CoreStyles这个位置添加:如:

   'Fillin': { Element: 'strong',Styles : { 'color' : 'Red' }, Overrides: 'b' },

7、 测试结果:

行了,右键加好了!!!

三、FCKeditor添加一个工具菜单

1、 同样是在zh-cn.js中添加一个你所想要的按钮和名称;

2、 在fckconfig.js中找到fckconfig.toolbarsets[“basic”]或者FCKConfig.

ToolbarSets["Default"],在其中添加你定义的按钮,也就是zh-cn..js中的那个;

如:['Cut', 'Copy', 'Paste', 'PasteText', 'PasteWord', '-', 'Fillin'],或者

['Bold', 'Italic', '-', 'OrderedList', 'UnorderedList', '-', 'Link', 'Unlink', '-', 'About', 'Fillin'] //*whc 2010 modify

3、  找到FCKToolbarItems.GetItem(其在fckeditorcode_gecko.js)中,添加一个case语句,这里与添加右键菜单的位置不同,其实差不多;如:     case 'Fillin':

  B = new FCKToolbarButton('Fillin', FCKLang.Fillin, null, null, true, null, 100); break;

4、实例化方法,这与前面的添加的右键菜单一样,同样是要实例command对应的方法;

5、测试效果

四、FCKeditor修改原有的菜单

1、 这里以修改字体大小为例,首先,若你需要修改其前面“大小”字符,则就要选择lang中zh-cn文件,修改’ FontSize: "填空设置",’;

2、 在fckeditor的fckconfig.js文件中删出你所不需要的选项;

 如:

  FCKConfig.FontSizes       = '是否填空' ;//whc modify 2010 07 27

   Styles     : { 'font-size' : 'large' },

总结

  那些年开始慢慢接近项目,FCK就是很好用的一个html编译器,此文以回忆那些年使用FCK的日子。

原文地址:https://www.cnblogs.com/xin_ny/p/2381113.html