wodemy 等级:新手上路 贴数:3 文章:0 积分:16 金钱:16 注册:2009-2-22 13:16:40
|
FCKeditor在风越ASP生成的代码中的使用 风越代码生成器只有UBB文本,功能十分有限。这里讲讲我在生成的代码中使用FCKeditor编辑器的经验。
一、安装 1、下载FCKeditor最新版本,免费开源的,各大网站都有下载。目前最新的是FCKeditor 2.6.3。 2、解压后将fckeditor文件夹复制到你的WEB程序的根目录。
二、配置 打开fckeditor/fckconfig.js可以看到可配置的东西很多,这两天挺忙,没有试过那些无关紧要的东西。这里只讲讲重要的。 找到var _FileBrowserLanguage,FCKeditor默认是var _FileBrowserLanguage = 'php' ;将php改为asp 找到var _QuickUploadLanguage,同样将php改为asp
打开fckeditor/editor/filemanager/connectors/asp/config.asp找到ConfigIsEnabled = False改为ConfigIsEnabled = True,否则无法上传文件。 但是这样一个重要功能,默认值为什么是False呢?因为这涉及上传文件的安全性。在设置这项值的前面,FCKeditor给了警告,必须对使用这项功能的用户采取相应的验证措施。由于本人的程序不面向匿名用户,能进后台添加、编辑信息的都是特定的用户,因此没有细究,只给一个提示。需要研究的,看我后面提供的两个参考文章。 三、调用 调用分两种调用方法,JS版和ASP版(当然还有PHP、.NET等,但我们这里只讨论ASP中的调用),无论那种调用,都必须在<form>和</form>之间(这句貌似废话)。
JS调用方法。 用JS版的好处是页面加载速度快,客户只有第一次打开时需要加载编辑器,以后都是直接从浏览器的缓存中调用。明显的坏处是调试麻烦,每次修改了编辑器的某项设置之后,都要删除浏览器的缓存。JS版可以在任意页面中使用,但编辑器如果有初始值,比如修改一条数据的时候,编辑器要先载入该数据原来的内容,此时最好用ASP版。据说是因为单引号(')的问题造成的,在数据内容里难免会有单引号存在而用JS版生成编辑器时可能就会因为单引号问题,而使编辑器无法正常生成,而采用asp则不同,用ASP版本的是因为数据被当成是一个变量了,然后直接赋值给编辑器域。我没时间验证现在的2.6.3版是不是还这样。我在编辑页面还是直接用ASP版吧。 A、在<head></head>内插入一下代码: <script type="text/javascript" src="../fckeditor/fckeditor.js"></script>(src路径根据自己的实际情况修改。)
B、在需要使用编辑器的地方找到风越生成的输入框,例如下面的文本框: <input type='text' name='ctrl_Title' id='ctrl_Title' maxlength='254' value = "<%=HtmEncode(Request.Form("ctrl_Title"))%>" style='width:100%' class='textBox'> 替换为以下代码: <script type="text/javascript"> var oFCKeditor = new FCKeditor( 'ctrl_Title' ) ; oFCKeditor.Create() ; </script> 其中ctrl_Title就是这个编辑器的实例名,要和被替换掉的文本框的name值相同,编辑器里的内容是通过它传递的。
ASP调用方法(只能在ASP页面中使用): A、在你的应用程序头部加入以下代码: <!--#include file="../FCKeditor/fckeditor.asp" -->(路径根据自己的情况调整)
B、在需要使用编辑器的地方找到风越生成的输入框,如下面的文本框: <input type='text' name='ctrl_Title' id='ctrl_Title' maxlength='254' value = "<%=HtmEncode(Request.Form("ctrl_Title"))%>" style='width:100%' class='textBox'> 替换为以下代码: <% Dim oFCKeditor Set oFCKeditor = New FCKeditor oFCKeditor.BasePath = "/FCKeditor/" '设置编辑器的路径,我站点根目录下的一个目录 oFCKeditor.ToolbarSet = "Default" oFCKeditor.Width = "100%" oFCKeditor.Height = "300" oFCKeditor.Value = "" '这个是给编辑器初始值 oFCKeditor.Create "ctrl_Title" '其中ctrl_Title就是这个编辑器的实例名,要和被替换掉的文本框的name值相同,编辑器里的内容是通过它传递的。 %>
四、传值 提交表单后,编辑器里的内容是通过Request("ctrl_Title")传递给服务器的。风越生成的代码形如:var_Title = Request.Form("ctrl_Title"),改成var_Title = Request("ctrl_Title")即可(这里讲“形如”是指var_Titel、ctrl_Title与你的实际变量名、控件名不同。)。
表单检测:风越生成的代码自动加入了检测录入内容的代码,包括ASP检测和JS检测。 ASP检测形如:errMessage = errMessage & CheckInputData("标题", "", var_Title, 1, 65535) JS检测形如:errMessage += CheckInputData("标题", "ctrl_Title", "", 1, 65535); 其中,ASP检测可以继续使用,JS检测要去掉检测FCKeditor编辑器的那部分。
五、显示 风越生成的代码形如 <% Dim var_Title_Show var_Title_Show = NullToEmptyStr(Rs("Title")) %> <%=HtmEncodeStr(var_Title_Show)%> 把最后这句<%=HtmEncodeStr(var_Title_Show)%>改为<%=var_Title_Show%>就可以了。
六、编辑 前面讲调用的时候说过,修改一条信息的时候,编辑器有初始值,此时最好用ASP调用,现在经本人实际使用,2.6.3版仍然是这样的。如果字段值带单引号或者换行,用JS版调用会显示不出来。 初始值的设置方法:oFCKeditor.Value = Rs("字段名")
OK了。 本文讲的是在风越生成的代码中嵌入FCKeditor编辑器的最简要、最必要过程。要更深入研究,请参考我做这些时参考的下面这两篇文章。他们使用的版本不是当前最新的2.6.3,所以有些地方跟本文讲的不一样。 FCKeditor在ASP环境中的配置使用 FckEditor配置手册中文教程详细说明(水寒修正版)
[本贴于2009-3-14 11:10:44被wodemy编辑过]
[本贴于2009-3-14 17:15:37被wodemy编辑过]
[UPLOAD_FILE]1[/UPLOAD_FILE]
[本贴于2009-3-19 9:11:23被wodemy编辑过]
( 3730字 )

|