dedecms防止FCK乱格式化你的代码的修改方法金沙js娱乐场官方网站:

 Do not change.,找到,    var oEditor = FCKeditorAPI.GetInstance(EditorName),function getEditorHTMLContents(EditorName) {,&lt,script type=”text/javascript”

默认的情况下,FCK开启了XHTML格式化的选项,因此,有些人用可视化编辑更改完整的HTML文件的时候,Head部份可能会被改得不像人样,解决办法如下:
打开 include/FCKeditor/fckconfig.js
找到
FCKConfig.EnableXHTML        = true;    // Unsupported: Do not change.
FCKConfig.EnableSourceXHTML    = true ;    // Unsupported: Do not change.

形式如:

javascript调用方式:
------------------------------------
<script type=”text/javascript”
src=”FCKeditor/fckeditor.js”></script>

改为
FCKConfig.EnableXHTML        = false ;    // Unsupported: Do not change.
FCKConfig.EnableSourceXHTML    = false ;    // Unsupported: Do not change.

varoEditor=FCKeditorAPI.GetInstance(‘content’);
varcontent=oEditor.GetXHTML(true);

<textarea name=”content” cols=”80″ rows=”4″>
</textarea>
<script type=”text/javascript”>
var FCKeditor = new FCKeditor(“content”);
FCKeditor.BasePath = “FCKeditor/”;
oFCKeditor.Height = 400;
oFCKeditor.ToolbarSet = “Default”;
oFCKeditor.ReplaceTextarea();
</script>
------------------------------------

然后删除你浏览器的临时文件,刷新当前页面,你会发现,不再被FCK恶搞了 

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

如果想要使用从数据库读来的文本数据或者是后台来自文件的txt/html文本数据。
只要在
------------------------------------
<textarea name=”content” cols=”80″ rows=”4″>
</textarea>
------------------------------------

利用Javascript取和设FCKeditor值也是非常容易的,如下:

中加入自己的显示内容的formbean对应字段即可
------------------------------------
<textarea name=”content” cols=”80″ rows=”4″>
    <c:out value=”${contentData}” />
</textarea>
------------------------------------

// 获取编辑器中HTML内容
function getEditorHTMLContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.GetXHTML(true));
}

这样内容就会被显示在FCKeditor编辑框中了,点击提交按钮以后就可以在后台的相应java
action中得到content参数中的内容就是页面上FCKeditor中的内容数据了。可以在struts/jsf中使用。

// 获取编辑器中文字内容
function getEditorTextContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.EditorDocument.body.innerText);
}

====================================

// 设置编辑器中内容
function SetEditorContents(EditorName, ContentStr) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
    oEditor.SetHTML(ContentStr) ;
}

由于给FCKeditor瘦身,所以常会报缺少对象支持等错误,只要在FCKeditor/editor/lang中加上相应的js语言文件即可。如果加
载页面失败(FCKeditor未定义)还有一个可能就是引用FCKeditor/fckeditor.js文件路径不对!

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

关于FCKeditor瘦身要点如下:
1.将FCKeditor目录下及子目录下所有以”_”下划线开头的文件夹删除
2.FCKeditor根目录下只保留fckconfig.js, fckeditor.js, fckstyles.xml,
fcktemplates.xml,其余全部删除
3.将editor/filemanager/upload目录下文件及文件夹清空
4.将/editor/filemanager/browser/default/connectors/下的所有文件删除
5.还可以将editor/skins目录下的皮肤文件删除,只留下default一套皮肤(如果你不需要换皮肤的话
6.还可以将editor/lang目录下文件删除,只保留en.js, fcklanguagemanager.js,
zh-cn.js, zh.js文件
7.如果你是使用javascript来调用加载FCKeditor,那么就不需要在web.xml中配置fckeditor的tag文件。
8.还有一个问题刚开始使用FCKeditor的人常会遇到就怎么控制它的toolbar的大小和元素排列,其实很简单。
在fckconfig.js中用这样的标签[]来划分每行的元素的多少,这样就可以控制toolbar的长短和大小了,具体示例参看:fckconfig.js中的toolbarset[“Default”]

在当前页获得 FCK 编辑器实例:
var Editor = FCKeditorAPI.GetInstance(‘InstanceName’);

====================================

从 FCK 编辑器的弹出窗口中获得 FCK 编辑器实例:
var Editor = window.parent.InnerDialogLoaded().FCK;

用fckconfig.js中的一些选项来控制toolbarset中控件的功能,实现功能裁剪:
1):取消超链接中的浏览服务器和上传功能,方法如下:
------------------------------------
FCKConfig.LinkBrowser = true;
FCKConfig.LinkUpload = true;
改为:
FCKConfig.LinkBrowser = false;
FCKConfig.LinkUpload = false;
------------------------------------

从框架页面的子框架中获得其它子框架的 FCK 编辑器实例:
var Editor = window.FrameName.FCKeditorAPI.GetInstance(‘InstanceName’);

2):取消图片链接中的浏览服务器和上传功能,方法如下:
------------------------------------
FCKConfig.ImageUpload = true;
FCKConfig.ImageBrowser = true;
改为:
FCKConfig.ImageUpload = false;
FCKConfig.ImageBrowser = false;
------------------------------------

从页面弹出窗口中获得父窗口的 FCK 编辑器实例:
var Editor = opener.FCKeditorAPI.GetInstance(‘InstanceName’);

3):Dlg Button中取消高级功能,方法如下:
FCKConfig.LinkDlgHideAdvanced = false ;
FCKConfig.ImageDlgHideAdvanced = false ;
改为:
FCKConfig.ImageDlgHideAdvanced = true ;
FCKConfig.LinkDlgHideTarget = true ;
------------------------------------

获得 FCK 编辑器的内容:
oEditor.GetXHTML(formatted); // formatted
为:true|false,表示是否按HTML格式取出
也可用:
oEditor.GetXHTML();

下一篇介绍FCKeditor的上传和浏览服务器功能,以及如何在里面实现动态

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

超连接,转发到servlet经过filter以后去调用服务器的action

插入内容到 FCK 编辑器:
oEditor.InsertHtml(“html”); // “html”为HTML文本

如何实现对应用户浏览自己的图片的列表实现!

检查 FCK 编辑器内容是否发生变化:
oEditor.IsDirty();

====================================

在 FCK 编辑器之外调用 FCK 编辑器工具条命令:
命令列表如下:
DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList,
About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table,
TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize,
FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor,
BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows,
TableInsertColumn, TableDeleteColumns, TableInsertCell,
TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form,
Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select,
ImageButton, SpellCheck, FitWindow, Undo, Redo

FCKeditor集成java
servlet可以实现文件的上传和服务器端列表读取功能FCKeditor自己提供了两个servlet来分别实现上传文件功能,和读取服务器端文件列表功能,这两个servlet分别为:
com.fredck.FCKeditor.connector.ConnectorServlet(读取文件列表)
com.fredck.FCKeditor.uploader.SimpleUploaderServlet(实现文件上传)

使用方法如下:
oEditor.Commands.GetCommand(‘FitWindow’).Execute();

1.浏览服务器端文件列表
------------------------------------
web.xml文件中,比如:ConnectorServlet中的配置选项:
<init-param>
    <param-name>baseDir</param-name>
    <param-value>/UserFiles/</param-value>
</init-param>

= FCKConfig.BasePath + ‘plugins/’ 
// FCKConfig.Plugins.Add( ‘placeholder’, ‘en,it’ ) ;

意思是在浏览服务器上的baseDir配置指定里面的所有文件及其目录结构列表。
如果你的baseDir没有配置,Connector将会自动创建一个默认的文件夹
UserFiles,对应的ConnectorServlet中init()方法中代码如下:
------------------------------------
baseDir = getInitParameter(“baseDir”);
if (baseDir == null)
baseDir = “/UserFiles/”;


掉//后,就相当于把placeholder这个插件功能加上了,fckeditor的插件文件都在/editor/plugins/文
件夹下分类按文件夹放置的,对于fckeditor2.0来说,里面有两个文件夹,也就是有两个官方插件,placeholder这个文件夹就是我们刚才
加上去的,主要用于多参数或单参数自定义标签的匹配,这个在制作编辑模板时非常管用,要想看具体实例的话,大家可以去下载acms
这个系统查看学习,另一个文件夹tablecommands就是编辑器里的表格编辑用到的了。当然,如果你想制作自己其它用途的插件,那就只要按照
fckeidtor插件的制作规则制作完放置在/editor/plugins/下就行,然后再在fckeidtor.js里再添加
FCKConfig.Plugins.Add(‘Plugin Name’,’,lang,lang’);就可以了。

------------------------------------
还想说一下的是,FCKeditor的client调用server的servlet方法采用的是Ajax思想来实现。当你点击浏览服务器
(browser server)的时候就会触发一个异步的javascript +
xmlhttp的调用响应,后台的servlet会去完成你要请求的事件,然后数据以xml方式返回给client来解析。很明显,你要实现去数据库或者
其他的文件系统请求列表,你只要修改
ConnectorServlet中两个私有方法:getFolders 和 getFiles

第二部分
,如何让编辑器一打开的时候,编辑工具条不出现,等点“展开工具栏”时才出现?Easy,FCKeditor本身提供了这个功能啦,打开fckconfig.js,找到

让它去你指定的地方得到文件列表即可,这样你的文件可以放在任何你指定目录下。多说一句,很多人都想知道个人blog系统中怎么实现上传文件以后对应用户
浏览自己的列表的,我的做法很简单,建立你用户名的文件夹,你上传只能上传到你的目录夹,浏览可以通过程序指定浏览对应用户下的文件夹即可,这个时候你要
修改Connectorservlet中的路径即可!
------------------------------------

FCKConfig.ToolbarStartExpanded = true ;
改成
FCKConfig.ToolbarStartExpanded = false ;
就可以啦!

2.超连接重定位问题
------------------------------------
FCKeditor可以插入超连接,实现对文件的预览功能,只要我们稍微改变我们可以使FCKeditor编辑器支持对任意文件系统下的任意文件的客户端
浏览和下载保存!FCKeditor本来提供的是相对URL超链接,只要我们修改ConnectorServlet中传递给客户端的地址的时候,把它改写
成绝对URL然后再通过我们自己的filter的servlet实现重定向去一个下载/浏览文件的struts的action方法就可以实现在客户端对超
连接文件的下载和浏览!说一下具体做法吧:

第三部分,使用自己的表情图标,同样打开fckcofnig.js到最底部那一段

1):修改ConnectorServlet传递给客户端javascript的路径,代码如下:
String currentUrl = “http://” + request.getserver +request.getServerPort

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 ;

  • request.getContextPath + resourcePath;

上面这段已经是我修改过的了,为了我发表此文的版面不会被撑得太开,我把FCKConfig.SmileyImages那一行改得只有三个表情图了。

以上代码请在ConnectorServlet的doGet()里面拼装!在调用CreateCommonXml()私有方法的时候参数传入:
myEl.setAttribute(“path”,currentPath);
myEl.setAttribute(“url”,currentUrl);

第一行,当然是表情图标路径的设置,第二行是相关表情图标文件名的一个List,第三行是指弹出的表情添加窗口最每行的表情数,下面两个参数是弹出的模态窗口的宽和高喽。

提醒一下resourcePath为在web.xml配置文件中ConnectorServlet中的一个初始化参数配置,等一下利用filter实现对超连接的重定位就提取URL中的这个配置参数来判断,配置如下
<init-param>
    <param-name>resourcePath</param-name>
    <param-value>/fileSystem/</param-value>
</init-param>

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

2):建立你的filter
servlet,实现对URL的截获,对符合要求的URL进行重定位到你的对应action中去即可
3):实现你的对应action来实现文件的上传和下载功能即可!
4):扩展功能-实现对URL的加密,对连接的URL中加上一串字符,最后几位作为算法校验,对不符合要求的URL连接,filter将会拒绝重定位到指
定action。此外利用自己写的扩展类还可以实现对超连接的文件类型进行限制,比如你只能超连接JPG|GIF|DOC|TXT|HTML等几种后缀名
的文件,对其他文件即使你指定超连接也让你浏览和下载,这些都可以在web.xml中通过修改对应servlet的配置文件的初始化参数实现。

此部分可能是大家最为关心的,上一篇文章简单的讲了如何修改来上传文件以及使用fckeidtor2.0才提供的快速上传功能。再我们继续再深层次的讲解上传功能

3.页面javascript修改
------------------------------------
浏览服务器的功能对应的html/javascript相关的文件为:browser.html和frmresourcelist.html对应你想传递
的信息你可以append在文件名的字符串后面,在GetFileRowHtml()的javascript函数中实现对文件名的截取,这样client
只会显示文件名,而你可以得到文件的数据库唯一标识,任何你想要的信息你都可以通过修改ConnectorServlet中的私有方法
getFiles()来实现,只要修改页面frmresurcelist.html中的GetFileRowHtml()中传入变量fileName即
可。你还可以在点击选中文件的时候实现一个你自己的Ajax调用,一切取决你的项目需要!

FCKConfig.LinkBrowser = true ;
FCKConfig.ImageBrowser = true ;
FCKConfig.FlashBrowser = true
;在fckconfig.js找到这三句,这三句不是连着的哦,只是我把他们集中到这儿来了,设置为true的意思就是允许使用fckeditor来浏览
服务器端的文件图像以及flash等,这个功能是你插入图片时弹出的窗口上那个“浏览服务器”按钮可以体现出来,如果你的编辑器只用来自己用或是只在后台
管理用,这个功能无疑很好用,因为他让你很直观地对服务器的文件进行上传操作。但是如果你的系统要面向前台用户或是像blog这样的系统要用的话,这个安
全隐患可就大了哦。于是我们把其一律设置为false;如下

4.我不是一个javascript高手,其实如果我对javascript了解多一些也许对客户端的代码修改以后做出更眩的功能。可以更好的完成对FCKeditor裁剪。
-------------------------------------