欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

FCKeditor的几点修改小结

程序员文章站 2022-06-09 20:41:41
在我的文章系统中,打算使用fckeditor作为在线文本编辑器,在开发过程中,有几个地方需要对编辑器 进行修改,才能满足功能设计。 一、修改默认的上传文件名  &...
在我的文章系统中,打算使用fckeditor作为在线文本编辑器,在开发过程中,有几个地方需要对编辑器
进行修改,才能满足功能设计。
一、修改默认的上传文件名
    fckeditor上传文件时,默认使用客户端的文件名,遇到重名文件,则自动重新命名,对于中文名称
的文件也是如此,这样对中文支持不好的服务器和浏览器,就容易对中文文件名的编解码出现错误而导致
乱码,因此需要将默认的文件命名方法修改为以当前日期、时间为基本要素的文件名,同时,为了避免重
复,还要用到随机函数。在.net中,可以用system.redom.next(min, max)来生成一个介于min和max之间
的随机数,但要注意的时,system.redom必须实例化。
    此处修改需要fckeditor的源代码并进行重新编译,使用vs.net 2003打开工程文件,对uploader.cs
文件进行修改。
    首先,将第46行string sfilename = system.io.path.getfilename( ofile.filename );注释掉;
    其次,在其下方加入如下代码
    datetime dt = datetime.now;
    string sfilename = dt.year.tostring() + dt.month.tostring() + dt.day.tostring() + 
dt.hour.tostring() + dt.minute.tostring() + dt.second.tostring() + dt.millisecond + new 
system.random().next(0, 999).tostring();
    sfilename += system.io.path.getextension( ofile.filename );
    这样,sfilename就是形如“20070510171005230010.jpg”的文件名了,并且不可能出现重复文件名
的现象。
    按下组合快捷键ctrl+shift+b生成解决方案,将项目文件夹下的bin/debug/fredck.fckeditorv2.dll
组件拷贝到网站根目录下的bin目录中,即可在网站工程中进行引用了。
二、把上传的图片动态加入编辑器所在页面的下拉列表中
    由于需要指定文章的标志图片,除了输入以外,还应该可以从下拉列表中选择已经上传的图片,这样
,就必须在fckeditor上传完图片时,*纵编辑器所在页面的select,并为其加入新的option。此处的关
键在于对静态模式网页对话框父窗口的引用,以及利用javascript加入option。
    打开fckeditor编辑器所在目录的\editor\dialog\fck_image\fck_image.js文件,在文件上传成功的
事件部分,加入以下代码。
    var ddl = oeditor.parent.document.form1.ddlpicurl;
    var opt = oeditor.parent.document.createelement("option")
    opt.text = filename;
    opt.value= fileurl
    ddl.options.add(opt);
    其中,oeditor是fckeditor是对网页对话框的父窗口的引用,而oeditor.parent就是对编辑器所在页
面的引用了。
    获取这样一个列表后,就可以在文章发布页面编写相关的javascript函数,来实现预览、选择等功能