网站内容编辑器(基于Javascript取和设FCKeditor值的FCK编辑器实例:)

优采云 发布时间: 2022-03-09 17:22

  网站内容编辑器(基于Javascript取和设FCKeditor值的FCK编辑器实例:)

  形式为:

  复制代码代码如下:

  varoEditor=FCKeditorAPI.GetInstance('content');

  varcontent=oEditor.GetXHTML(true);

  ****************************************************** **

  使用Javascript来获取和设置FCKeditor的值也很简单,如下:

  复制代码代码如下:

  // 获取编辑器中的 HTML 内容

  函数 getEditorHTMLContents(EditorName) {

  var oEditor = FCKeditorAPI.GetInstance(EditorName);

  返回(oEditor.GetXHTML(真));

  }

  // 获取编辑器中的文本内容

  函数 getEditorTextContents(EditorName) {

  var oEditor = FCKeditorAPI.GetInstance(EditorName);

  返回(oEditor.EditorDocument.body.innerText);

  }

  // 在编辑器中设置内容

  功能 SetEditorContents(EditorName, ContentStr) {

  var oEditor = FCKeditorAPI.GetInstance(EditorName) ;

  oEditor.SetHTML(ContentStr) ;

  }

  FCKeditorAPI 是 FCKeditor 加载后注册的全局对象。使用它,我们可以在编辑器上完成各种操作。

  在当前页面获取 FCK 编辑器的实例:

  var Editor = FCKeditorAPI.GetInstance('InstanceName');

  从 FCK Editor 弹出窗口中获取 FCK Editor 实例:

  var Editor = window.parent.InnerDialogLoaded().FCK;

  从框架页面的子框架中获取其他子框架的FCK编辑器实例:

  var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

  从页面弹窗中获取父窗口的FCK编辑器实例:

  var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');

  获取 FCK 编辑器的内容:

  oEditor.GetXHTML(格式化);// 格式化为:true|false,表示是否提取为HTML格式

  也提供:

  oEditor.GetXHTML();

  设置FCK编辑器的内容:

  oEditor.SetHTML("内容", false); // 第二个参数为:true|false,是否以所见即所得的方式设置其内容。此方法常用于“设置初始值”或“表单重置”操作。

  将内容插入 FCK 编辑器:

  oEditor.InsertHtml("html"); // “html”是 HTML 文本

  检查 FCK 编辑器内容是否已更改:

  oEditor.IsDirty();

  要在 FCK 编辑器之外调用 FCK 编辑器工具栏命令:

  命令列表如下:

  DocProps, 模板, 链接, 取消链接, 锚点, BulletedList, NumberedList, 关于, 查找, 替换, 图像, Flash, SpecialChar, 笑脸, 表, TableProp, TableCellProp, UniversalKey, 样式, FontName, FontSize, FontFormat, 源代码, 预览, 保存, NewPage,PageBreak,TextColor,BGColor,PasteText,PasteWord,TableInsertRow,TableDeleteRows,TableInsertColumn,TableDeleteColumns,TableInsertCell,TableDeleteCells,TableMergeCells,TableSplitCell,TableDelete,表单,复选框,单选,TextField,Textarea,HiddenField,按钮,选择,ImageButton,拼写检查, FitWindow,撤消,重做

  使用方法如下:

  oEditor.Commands.GetCommand('FitWindow').Execute();

  = FCKConfig.BasePath + '插件/'

  // FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ;

  去掉 // 后,相当于增加了占位符的插件功能。fckeditor的插件文件全部分类放在/editor/plugins/文件夹下的文件夹中。对于fckeditor2.0,里面有两个文件夹,也就是有两个官方插件。占位符文件夹是我们刚刚添加的。主要用于匹配多参数或单参数自定义标签。这在制作编辑模板时非常有用。如果你想看具体的例子的话,可以下载一个cms这个系统查看学习,另外一个文件夹tablecommands,用于编辑器中的表格编辑。当然,如果你想自己制作其他用途的插件,只要按照fckeidtor插件的制作规则,放在/editor/plugins/下,然后添加FCKConfig.Plugins.Add(' fckeidtor.js 中的插件 Name',',lang,lang'); 正好。

  第二部分,如何使编辑工具栏在打开编​​辑器时不出现,只在点击“扩展工具栏”时出现?很简单,FCKeditor本身就提供了这个功能,打开fckconfig.js,找到

  FCKConfig.ToolbarStartExpanded = true;

  改成

  FCKConfig.ToolbarStartExpanded = false;

  而已!

  第三部分,使用自己的 emoji 图标,同样打开 fckcofnig.js 到底部

  复制代码代码如下:

  FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;

  FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif'];

  FCKConfig.SmileyColumns = 8;

  FCKConfig.SmileyWindowWidth = 320;

  FCKConfig.SmileyWindowHeight = 240;

  上面这段是我修改的。为了防止这篇文章的版面过于宽泛,我把FCKConfig.SmileyImages这一行改成了只有三个表情。

  第一行当然是emoji路径的设置,第二行是相关emoji图标的文件名列表,第三行是指弹出的emoji每行的emoji个数添加窗口。以下两个参数是弹出的表情符号。状态窗口的宽度和高度。

  第四部分,文件上传管理部分

  这部分应该是大家最关心的吧。上一篇文章简单讲了如何修改和上传文件以及使用fckeidtor2.0提供的快速上传功能。下面继续深入讲解上传功能。

  FCKConfig.LinkBrowser = true;

  FCKConfig.ImageBrowser = true;

  FCKConfig.FlashBrowser = true ; 在fckconfig.js中找到了这三个语句,这三个语句没有连接,但是我这里集中了,设置为true表示允许使用fckeditor浏览服务器端的文件图片和flash等。这个功能插入图片时,通过弹出窗口中的“浏览服务器”按钮反映出来。如果你的编辑器只供自己使用或者只用于后台管理,这个功能无疑是非常有用的,因为它可以让你直观的上传文件到服务器。但是如果你的系统是用于前端用户或者博客之类的系统,这个安全风险会很大。所以我们总是把它设置为false;如下

  FCKConfig.LinkBrowser = 假;

  FCKConfig.ImageBrowser = false;

  FCKConfig.FlashBrowser = 假;

  这样,我们只有快速上传可用,好的!接下来我们修改一下,同样以asp为例,输入/editor/filemanager/upload/asp/打开config.asp,修改

  ConfigUserFilesPath = "/UserFiles/" 这个设置是上传文件的通用目录,我这里就不改了,大家自己改

  好的,再次打开这个目录下的upload.asp文件,找到下面这段

  复制代码代码如下:

  暗淡的资源类型

  如果 ( Request.QueryString("Type") "" ) 那么

  resourceType = Request.QueryString("类型")

  别的

  资源类型 = "文件"

  万一

  然后在之后添加

  ConfigUserFilesPath = ConfigUserFilesPath & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"

  这种情况下,上传的文件会进入文件夹“/userfiles/文件类型(如图片或文件或flash)/年/月/”,这个设置对于单个用户来说已经足够了,如果要给多个-用户系统,像这样改变它

  ConfigUserFilesPath = ConfigUserFilesPath & Session("username") & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"

  这样,上传的文件进入“/userfiles/用户目录/文件类型/年/月/”。当然,如果你不想这样安排,也可以改成别的。例如,用户目录更深一层。这里的 Session("username") 请根据需要修改或替换。

  上传的目录设置好了,但是上传者不会自己创建这些文件夹。如果不存在,则上传不会成功,那么我们要按照上面上传路径的要求,递归生成目录。

  找到这一段

  复制代码代码如下:

  Dim sServerDir

  sServerDir = Server.MapPath( ConfigUserFilesPath )

  如果(右(sServerDir,1)“\”)那么

  sServerDir = sServerDir & "\"

  万一

  把这两行放在它下面

  暗淡的FSO

  设置 oFSO = Server.CreateObject("Scripting.FileSystemObject")

  替换为以下代码

  复制代码代码如下:

  暗淡 arrPath、strTmpPath、intRow

  strTmpPath = ""

  arrPath = 拆分(sServerDir,“\”)

  暗淡的FSO

  设置 oFSO = Server.CreateObject("Scripting.FileSystemObject")

  对于 intRow = 0 到 Ubound(arrPath)

  strTmpPath = strTmpPath & arrPath(intRow) & "\"

  如果 oFSO.folderExists(strTmpPath)=false 那么

  oFSO.CreateFolder(strTmpPath)

  万一

  下一个

  使用这段代码生成你想要的文件夹,上传时会自动生成。

  好了,上传文件的修改可以暂时停止了。但是对于中文用户来说还是有这样一个问题,就是fckeditor的文件上传默认不改名,也不支持中文文件名,所以在上传的文件会变成不可读的文件如“ .jpg”,然后就会有同名的文件。当然同名没什么,因为fckeditor会自动改名,会在文件名后面加上(1)。这个是用来识别的。不过我们平时的习惯是让程序自动生成唯一的文件名

  刚才的代码下面是

  ' 获取上传的文件名。

  sFileName = oUploader.File("NewFile").Name

  看清楚了,这是文件名,我们改一下吧,当然要有生成文件名的函数,改成如下

  复制代码代码如下:

  '//获取唯一的序列号

  公共函数 GetNewID()

  昏暗的ranNum

  暗淡dtNow

  随机化

  dtNow=现在()

  ranNum=int(90000*rnd)+10000

  GetNewID=year(dtNow) & right("0" & 月(dtNow),2) & right("0" & day(dtNow),2) & right("0" & 小时(dtNow) ),2) & 右("0" & 分(dtNow),2) & 右("0" & 秒(dtNow),2) & 随机数

  结束功能

  ' 获取上传的文件名。

  sFileName = GetNewID() &"."& split(oUploader.File( "NewFile" ).Name,".")(1)

  这样上传的文件会自动重命名,生成一个文件名如236365.jpg,这是一个由年、月、日、时、分、秒和三个随机数组成的文件名。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线