- 浏览: 61757 次
- 性别:
- 来自: 河北
最新评论
-
xiexifeng113:
ActionServlet -
cheng5259:
有一个原因是在javaweb项目的开发中途改过项目属性的编码, ...
关于页面编码混乱
[编辑本段]
什么是FckEditor
FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的“FCK” 是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。
FCKeditor 相容于绝大部分的网页浏览器,像是 : Internet Explorer 5.5+ (Windows)、Mozilla Firefox 1.0+、Mozilla 1.3+ 和 Netscape 7+。在未来的版本也将会加入对 Opera 的支援。
FckEditor更名CKEditor
著名的开源网页编辑软件FCKEditor在09年发布更新到3.0,并改名为CKEditor。原来叫FCK,是因为最初的开发者叫Frederico Calderia Knabben;现在叫CK,意指"Content and Knowledge"。新版的编辑器的更新包括:新的用户界面,一个支持Plug-in的Javascript API,并提供对视觉障碍者的使用支持。"
据官方的解释,CK是对FCK的代码的完全重写,而且此项工作从2007年就开始了,并在今年初发表了多个测试版。至此,为大家服务长达6年的FCKeditor将被CKeditor替代。
[编辑本段]
配置中文解释
AutoDetectLanguage=true/false 自动检测语言
BaseHref="" 相对链接的基地址
ContentLangDirection="ltr/rtl" 默认文字方向
ContextMenu=字符串数组,右键菜单的内容
CustomConfigurationsPath="" 自定义配置文件路径和名称
Debug=true/false 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容
DefaultLanguage="" 缺省语言
EditorAreaCss="" 编辑区的样式表文件
EnableSourceXHTML=true/false 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML
EnableXHTML=true/false 是否允许使用XHTML取代HTML
FillEmptyBlocks=true/false 使用这个功能,可以将空的块级元素用空格来替代
FontColors="" 设置显示颜色拾取器时文字颜色列表
FontFormats="" 设置显示在文字格式列表中的命名
FontNames="" 字体列表中的字体名
FontSizes="" 字体大小中的字号列表
ForcePasteAsPlainText=true/false 强制粘贴为纯文本
ForceSimpleAmpersand=true/false 是否不把&符号转换为XML实体
FormatIndentator="" 当在源码格式下缩进代码使用的字符
FormatOutput=true/false 当输出内容时是否自动格式化代码
FormatSource=true/false 在切换到代码视图时是否自动格式化代码
FullPage=true/false 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
GeckoUseSPAN=true/false 是否允许SPAN标记代替B,I,U标记
IeSpellDownloadUrl=""下载拼写检查器的网址
ImageBrowser=true/false 是否允许浏览服务器功能
ImageBrowserURL="" 浏览服务器时运行的URL
ImageBrowserWindowHeight="" 图像浏览器窗口高度
ImageBrowserWindowWidth="" 图像浏览器窗口宽度
LinkBrowser=true/false 是否允许在插入链接时浏览服务器
LinkBrowserURL="" 插入链接时浏览服务器的URL
LinkBrowserWindowHeight=""链接目标浏览器窗口高度
LinkBrowserWindowWidth=""链接目标浏览器窗口宽度
Plugins=object 注册插件
PluginsPath="" 插件文件夹
ShowBorders=true/false 合并边框
SkinPath="" 皮肤文件夹位置
SmileyColumns=12 图符窗列数
SmileyImages=字符数组 图符窗中图片文件名数组
SmileyPath="" 图符文件夹路径
SmileyWindowHeight 图符窗口高度
SmileyWindowWidth 图符窗口宽度
SpellChecker="ieSpell/Spellerpages" 设置拼写检查器
StartupFocus=true/false 开启时FOCUS到编辑器
StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置
TabSpaces=4 TAB键产生的空格字符数
ToolBarCanCollapse=true/false 是否允许展开/折叠工具栏
ToolbarSets=object 允许使用TOOLBAR集合
ToolbarStartExpanded=true/false 开启是TOOLBAR是否展开
UseBROnCarriageReturn=true/false 当回车时是产生BR标记还是P或者DIV标记
[编辑本段]
在PHP中调用
<?php
function FCKeditor_IsCompatibleBrowser()
{
if ( isset( $_SERVER ) ) {
$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
}
else {
global $HTTP_SERVER_VARS ;
if ( isset( $HTTP_SERVER_VARS ) ) {
$sAgent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ;
}
else {
global $HTTP_USER_AGENT ;
$sAgent = $HTTP_USER_AGENT ;
}
}
if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
{
$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
return ($iVersion >= 5.5) ;
}
else if ( strpos($sAgent, 'Gecko/') !== false )
{
$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
return ($iVersion >= 20030210) ;
}
else if ( strpos($sAgent, 'Opera/') !== false )
{
$fVersion = (float)substr($sAgent, strpos($sAgent, 'Opera/') + 6, 4) ;
return ($fVersion >= 9.5) ;
}
else if ( preg_match( "|AppleWebKit/(\d+)|i", $sAgent, $matches ) )
{
$iVersion = $matches[1] ;
return ( $matches[1] >= 522 ) ;
}
else
return false ;
}
class FCKeditor
{
public $InstanceName ;
public $BasePath ;
public $Width ;
public $Height ;
public $ToolbarSet ;
public $Value ;
public $Config ;
public function __construct( $instanceName )
{
$this->InstanceName = $instanceName ;
$this->BasePath = '../common/editor/' ;
$this->Width = '100%' ;
$this->Height = '400' ;
$this->ToolbarSet = 'Default' ;
$this->Value = '' ;
$this->Config = array() ;
}
public function Create()
{
echo $this->CreateHtml() ;
}
public function CreateHtml()
{
$HtmlValue = htmlspecialchars( $this->Value ) ;
$Html = '' ;
if ( $this->IsCompatible() )
{
if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
$File = 'fckeditor.original.html' ;
else
$File = 'fckeditor.html' ;
$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
if ( $this->ToolbarSet != '' )
$Link .= "&Toolbar={$this->ToolbarSet}" ;
$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
}
else
{
if ( strpos( $this->Width, '%' ) === false )
$WidthCSS = $this->Width . 'px' ;
else
$WidthCSS = $this->Width ;
if ( strpos( $this->Height, '%' ) === false )
$HeightCSS = $this->Height . 'px' ;
else
$HeightCSS = $this->Height ;
$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
}
return $Html ;
}
public function IsCompatible()
{
return FCKeditor_IsCompatibleBrowser() ;
}
public function GetConfigFieldString()
{
$sParams = '' ;
$bFirst = true ;
foreach ( $this->Config as $sKey => $sValue )
{
if ( $bFirst == false )
$sParams .= '&' ;
else
$bFirst = false ;
if ( $sValue === true )
$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
else if ( $sValue === false )
$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
else
$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
}
return $sParams ;
}
public function EncodeConfig( $valueToEncode )
{
$chars = array(
'&' => '%26',
'=' => '%3D',
'"' => '%22' ) ;
return strtr( $valueToEncode, $chars ) ;
}
}
$editor = new FCKeditor('editor') ;//接收时$_POST['........']中的内容
$editor->BasePath = "../common/editor/";//FCKEDITOR的路径
?>
在需要调用的地方<?php $editor->Create();?>
接受的文件用$_POST['editor']调用(editor)可在$editor = new FCKeditor('editor')设置
[编辑本段]
在Asp中调用
首先在文件顶部包含主文件
<!--#include file="../fckeditor.asp"-->
在适当的地方插入文本区域内容:
<%
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.ToolbarSet = "A" ’使用工具条
oFCKeditor.Width = "100%" ’宽度
oFCKeditor.Height = "400" ’高度
oFCKeditor.Value = ’源文件
oFCKeditor.Create "content" ’文本框名称
%>
[编辑本段]
在JSP中调用
web.xml配置:
FckEditor for java 2.4版本
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>
/fckeditor/editor/filemanager/connectors/*
</url-pattern>
</servlet-mapping>
在JSP中使用标签调用demo:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.fckeditor.net" prefix="FCK" %>
<html>
<head>
<title>FckEditor测试</title>
</head>
<body style="text-align: center;">
FckEditor测试
<hr>
<form action="ShowData.jsp" method="post">
<FCK:editor instanceName="test" height="400pt">
<jsp:attribute name="value"> 这里是http://baike.baidu.com/">数据测试
</jsp:attribute>
</FCK:editor>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
</body>
</html>
[编辑本段]
自定义工具条
/* Source="页面源码"
DocProps="页面属性"
Save="保存"
NewPage="新建"
Preview="预览"
Templates="模版"
Cut="剪切"
Copy="拷贝"
Paste="粘贴"
PasteText="粘贴为无格式的文本"
PasteWord="粘贴Word格式"
Print="打印"
SpellCheck="拼写检查,要装插件"
Undo="撤消"
Redo="重做"
Find="查找"
Replace="替换"
SelectAll="全选"
RemoveFormat="清除格式(清除现在文本的格式)"
Form="表单域"
Checkbox="复选"
Radio="单选"
TextField="单行文本"
Textarea="多行文本"
Select="列表"
Button="按钮"
ImageButton="图像区域"
HiddenField="隐藏域"
Bold="加粗"
Italic="倾斜"
Underline="下划线"
StrikeThrough="删除线"
Subscript="下标"
Superscript="上标"
OrderedList="删除/插入项目列表"
UnorderedList="删除/插入项目符号"
Outdent="减少缩进"
Indent="增加缩进"
JustifyLeft="左对齐"
JustifyCenter="居中对齐"
JustifyRight="右对齐"
JustifyFull="分散对齐"
Link="链接"
Unlink="删除链接"
Anchor="插入/删除锚点"
Image="上传图片"
Flash="上传动画"
Table="插入表格"
Rule="插入水平线"
Smiley="插入表情"
SpecialChar="插入特殊字符"
PageBreak="插入分页符"
Style="样式"
FontFormat="格式"
FontName="字体"
FontSize="大小"
TextColor="字体颜色"
BGColor="背景色"
FitWindow="全屏编辑"
About="关于我们"
*/
也就是fckeditor总配置文件,位于根目录下的fckconfig.js文件。请根据下面的列表进行(以fckeditor 2.0版的为准):找到第20行 FCKConfig.DefaultLanguage = 'en' ;改为 FCKConfig.DefaultLanguage = 'zh-cn' ;设置默认语言为简体中文
找到第40行 FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键。
如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,也就是基本的toolbar,
找到第64行:
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
这是我改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台页直接访问和上传文件,要是这儿不改直接给你上传个木马还不马上玩完?
一下为全部显示工具栏显示的示例:
FCKConfig.ToolbarSets["Default"] = [//Default工具条的名称
[’Source’,’DocProps’,’-’,’Save’,’NewPage’,’Preview’,’-’,’Templates’],
[’Cut’,’Copy’,’Paste’,’PasteText’,’PasteWord’,’-’,’Print’,’SpellCheck’],
[’Undo’,’Redo’,’-’,’Find’,’Replace’,’-’,’SelectAll’,’RemoveFormat’],
[’Form’,’Checkbox’,’Radio’,’TextField’,’Textarea’,’Select’,’Button’,’ImageButton’,’HiddenField’],
’/’,
[’Bold’,’Italic’,’Underline’,’StrikeThrough’,’-’,’Subscript’,’Superscript’],
[’OrderedList’,’UnorderedList’,’-’,’Outdent’,’Indent’],
[’JustifyLeft’,’JustifyCenter’,’JustifyRight’,’JustifyFull’],
[’Link’,’Unlink’,’Anchor’],
[’Image’,’Flash’,’Table’,’Rule’,’Smiley’,’SpecialChar’,’PageBreak’],
’/’,
[’Style’,’FontFormat’,’FontName’,’FontSize’],
[’TextColor’,’BGColor’],
[’FitWindow’,’-’,’About’]
] ;
用户根据需要自行配置
[编辑本段]
官方网站
http://www.fckeditor.net
[编辑本段]
最新版本
目前FCKeditor已发展到3.0,并更名为CKEditor,最新版本是CKEditor 3.2.1。
CKEditor是FCKeditor的一个完全重写版本,加载更快更方便使用。
FCKeditor最后版本为2.6.6
fckeditor for java最新版本为2.4
相对于2.3有如下改变:
◆The integration pack is now managed by Maven 2 with complete documentation and reports.
◆Automatic creation of release distribution files (assemblies).
◆The library runs now from Servlet 2.4/JSP 2.0 and above.
◆A complete structure and package review has been done. Base package moved from com.fredck.FCKeditor to net.fckeditor.
◆The Server Side Integration requirements are completely fulfilled.
◆The SimpleUploaderServlet functionality has been merged into the ConnectorServlet.
◆The JSP tag library has been completely restructured.
◆A more complete and reliable browser detection code.
◆New configuration handling:
★No configuration settings in the web.xml anymore.
★The configuration properties can be set in a common properties file or programmatically.
★'Convention over conversion', just reset the properties which don't meet your requirements.
◆Introduced the state-of-the-art SLF4J logging facade.
◆Pluggable interfaces have been introduced to extend the ConnectorServlet. This system provides session or request-based functionality.
◆JUnit test coverage on viable classes.
◆Clean and safe parameter handling and abstraction.
◆A lot of code performance improvements and tweaks.
http://baike.baidu.com/view/1093993.htm?fr=ala0_1_1
发表评论
-
Tiles框架特性和内容
2010-05-11 08:52 1271Tiles框架为创建Web页 ... -
在Struts中使用Validator框架(1)
2010-04-21 17:05 818每个应用程序都有责任 ... -
struts框架、运行机制
2010-04-19 10:14 2017Struts框架是MVC模式的一种实现,框架提供的是一种&q ... -
JSP Struts之Core标签库详解
2010-04-12 09:50 1331JSTL标签库的配置需要在web程序的lib目录下粘贴jstl ... -
JSP Struts之Bean标签库详解
2010-04-12 09:21 1546JSP Struts之Bean标签库详解 Bean 标签库 ... -
JSP Struts之HTML标签库详解
2010-04-12 09:16 898JSP Struts之HTML标签库详解 Struts提供了 ... -
ActionServlet
2010-04-09 09:39 3842Struts详解之-ActionServlet ... -
ActionForm
2010-04-07 15:15 1211配置ActionForm Bean ... -
struts 运行机制------Struts中的控制层功能
2010-04-07 10:04 1204Struts中的控制层功能: ... -
struts的jar包和配置
2010-04-01 11:20 5348commons-beanutils-1.7.0.jar: ... -
使用struts+spring+hibernate 组装web应用
2010-04-01 11:01 706这篇文章将讨论怎样组合几个著名的框架去做到松耦合的目的,怎样建 ... -
Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
2010-03-11 09:17 785每学习一个框架,我们都免不了要学习一些关于的配置文件,stru ... -
struts-config.xml详解
2010-03-11 09:07 1030ActionServlet中RequestProcesso ...
相关推荐
FCKeditor是一款强大的开源文本编辑器,主要用于网页内容的创建和编辑。它的名称来源于"Freeware Complete Kit for Web Editors"的首字母缩写,旨在提供一个功能丰富的HTML编辑器,让非技术人员也能轻松编辑网页内容...
兼容目前的浏览器 里面包含FCKeditor编辑器和控件 一、集成方法 FCKeditor应用在ASP.NET上,需要两组文件,一组是FCKeditor本身,另一个是用于ASP.NET的FCKeditor控件(分为1.1和2.0两个版本,这里使用2.0版本)。 ...
在IT行业中,富文本编辑器(FCKeditor)是一款广泛使用的在线文本编辑工具,它允许用户在网页上创建、编辑和格式化文本,类似于桌面版的Microsoft Word。FCKeditor以其丰富的功能和易于集成的特点,深受开发者喜爱。...
**FCKeditor 2.6.6:一个经典且易集成的在线文本编辑器** FCKeditor是一款在Web开发中广泛使用的开源富文本编辑器,它允许用户在浏览器环境中进行类似Word的文本编辑操作。标题提到的是FCKeditor的2.6.6版本,这是...
Fckeditor是一款基于Web的富文本编辑器,它允许用户在网页上进行文本编辑,提供类似于Microsoft Word的功能。这款编辑器支持多种操作系统和浏览器,并且具备高度的可定制性,是开发人员集成到网站中用于创建、编辑...
**FCKeditor 2.6.8:一个强大的在线文本编辑器** FCKeditor是一款开源的、基于Web的富文本编辑器,它允许用户在网页上进行类似Word的文本编辑操作,支持创建和编辑含有图文混合的内容。这个版本是2.6.8,是一个稳定...
2.解压缩到你的站点根文件夹中名为FCKEDITOR的文件夹中(名称必须为FCKEDITOR,因为配置文件中已经使用此名称来标示出FCKEDITOR的位置) 3.现在,编辑器就可以使用了,如果想要查看演示,可以按下面方法访问: ...
FCKeditor是一款知名的开源富文本编辑器,它允许用户在网页上进行富文本内容的创建和编辑。在Java环境中使用FCKeditor时,通常需要一些特定的库文件,即jar包,以及可能的源代码来支持其功能。下面将详细阐述...
**FCKeditor** 是一个非常流行的开源富文本编辑器,广泛应用于Web开发中,使得用户可以在网页上方便地编辑和格式化文本,包括插入图片、链接等操作。它支持多种编程语言,如JavaScript、ASP、ASP.NET、PHP、JSP等,...
FCKeditor.Net_2.6.3 是一个强大的开源文本编辑器,专为.NET平台设计。这个全中文版本是针对原版FCKeditor进行了深度定制,将所有英文界面和提示翻译成了中文,使得国内用户在使用过程中能更加方便地理解和操作。 ...
将Fckeditor 里的保留文件拷贝到网站根目录文件夹里,即/ictech/下 /fcktemplates.xml /fckstyles.xml /fckeditor_php5.php /fckeditor_php4.php /fckeditor.php /fckeditor.js /fckconfig.js /editor/ fckeditor....
**FCKEditor**是一款历史悠久且功能强大的开源网页编辑器,它允许用户在网页上实现类似Word的文本编辑体验。FCKeditor的出现极大地提升了网站内容创作的便捷性,尤其适用于那些需要用户输入丰富格式文本的在线平台,...
**FCKeditor与fckeditor.properties详解** 在JSP(JavaServer Pages)开发环境中,富文本编辑器FCKeditor是一款广泛使用的开源工具,它允许开发者在网页上创建具有类似Word功能的文本编辑区域,用户可以方便地进行...
**FCKEditor与Java Web整合详解** FCKEditor是一款开源的富文本编辑器,它为用户提供了一种在Web页面上创建、编辑复杂HTML内容的便捷方式。FCKeditor以其直观的用户界面和丰富的功能,被广泛应用于各种Java Web应用...
**FCKeditor插件远程保存图片详解** FCKeditor是一款非常流行的开源富文本编辑器,广泛应用于网站内容管理系统(CMS)和其他需要用户编辑HTML内容的场景。它提供了丰富的功能,如文本格式化、图片上传、链接创建等...
这个是一个我修改过的fckeditor for jsp 的jar包的源代码,是fckeditor-2.3的,我修改了ConnectorServlet.java和SimpleUploaderServlet.java两个文件 我在这两个文件中都是加了一个静态变量encoding,private static...
这个压缩包“FCKeditor开发jar包及fckeditor文件夹”包含的是FCKeditor的开发相关资源,主要分为两部分:jar包和fckeditor文件夹。 1. **FCKeditor jar包**: 这个jar包通常包含了FCKeditor的Java版本,是将...