源文链接:
http://www.cnblogs.com/dsliang/archive/2008/12/18/1357594.html
个人觉得这文章很适合初开发FCK插件的朋友~
一:插件的目录结构
插件目录的名称必须和插件的名称一样,而且目录里面必须包含一个fckplugin.js文件。可选包含一个lang目录用来实现界面的国际化。每一个文件定义一种语言,文件名不包含.js,用FCKConfig.Plugins.Add()注册。如果实现的插件命令没有界面,也可以不需要支持任何语言。
比如:findreplace插件的目录结构如下:
/editor/plugins/findreplace/fckplugin.js
/editor/plugins/findreplace/lang/en.js
/editor/plugins/findreplace/lang/zh.js
在fckplugin.js文件中定义你的插件,同时也应该注册改命令,以及创建一个工具栏按钮。
注册代码说明:
//注册命令,RegisterCommand(命令名,命令)
FCKCommands.RegisterCommand(
'My_Find',
new FCKDialogCommand(
FCKLang['DlgMyFindTitle'],
FCKLang['DlgMyFindTitle'],
FCKConfig.PluginsPath + 'findreplace/find.html', 340, 170));
FCKCommands.RegisterCommand('My_Replace',
new FCKDialogCommand(
FCKLang['DlgMyReplaceTitle'],
FCKLang['DlgMyReplaceTitle'],
FCKConfig.PluginsPath + 'findreplace/replace.html', 340, 200)) ;
//创建工具栏按钮,现创建,再注册。
var oFindItem = new FCKToolbarButton('My_Find', FCKLang['DlgMyFindTitle']);
oFindItem.IconPath = FCKConfig.PluginsPath + 'findreplace/find.gif' ;
FCKToolbarItems.RegisterItem( 'My_Find', oFindItem ) ;
var oreplaceItem = new FCKToolbarButton( 'My_Replace', FCKLang['DlgMyReplaceTitle']);
oreplaceItem.IconPath = FCKConfig.PluginsPath + 'findreplace/replace.gif';
FCKToolbarItems.RegisterItem('My_Replace', oreplaceItem);
二:安装插件:
安装前把解压的包拷贝到editor/plugins目录下,然后按下列步骤进行:
1、先确定按钮在工具栏的位置
最好在定制的配置文件中,新写一个工具栏来包含新的插件。
定制配置文件:
FCKConfig.ToolbarSets['PluginTest'] = [
['Source'],
['Placeholder'],
['My_Find', 'My_Replace'],
['Table','-',
'TableInsertRow', 'TableDeleteRows',
'TableInsertColumn', 'TableDeleteColumns',
'TableInsertCell', 'TableDeleteCells',
'TableMergeCells', 'TableSplitCell'
],
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
2:添加插件同样,可以直接在定制文件中添加插件。可以直接把插件放置到默认目录下,或者在FCKConfig.Plugins.Add方法里面的第三个参数指定插件所在的位置。
//代码分析:
FCKConfig.Plugins.Add( pluginName, availableLanguages, pathToPlugin )
pluginName: 插件名称或者插件目录名称.
availableLanguages: 逗号分割的可用语言列表.
pathToPlugin: 绝对路径,指插件的所占目录,包括插件本身一层目录
在默认位置添加插件
FCKConfig.Plugins.Add( 'findreplace', 'en,it' ) ;
在其他位置添加插件,在add方法传递插件的绝对路径。
FCKConfig.PluginsPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + '_samples/_plugins/' ;
var sOtherPluginPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + 'editor/plugins/' ;
FCKConfig.Plugins.Add( 'placeholder', 'en,it', sOtherPluginPath ) ;
FCKConfig.Plugins.Add( 'tablecommands', null, sOtherPluginPath ) ;
//////////////////////////////////////////////////////////////////////////////////////////////
按照下面的操作一次相信你会学到不少~
一:基于对话框的插件:一步一步创建基于对话框的fck插件。
以创建一个简单的超级链接为例。可以从已经存在的placeholder插件的目录作为基本的骨架。
1. 命名插件名称为:"InsertLink". ,并建立同名的目录,并且在InsertLink目录下创建一个Lang的目录,lang目录下至少有一个文件en.js。该文件中至少要有按钮和对话框标题的国际化信息,比如:
FCKLang.InsertLinkBtn = 'Insert/Edit Link' ; //按钮的标题
FCKLang.InsertLinkDlgTitle = 'Link Properties' ; //对话框的标题
2:图片,在InsertLink文件夹中添加图片文件,最好将图片文件命名为和插件名一样的名称。图片的大小要求是20*21,并且是透明的。
3:javascript:
添加fckplugin.js文件到InsertLink目录。
注册相关命令:
//注册命令的方法是FCKCommands.RegisterCommand(命令名称,对话框命令)
//创建对话框命令的格式:new FCKDialogCommand( 命令名称, 对话框标题,url路径, 宽度,高度)
FCKCommands.RegisterCommand( 'InsertLink', new FCKDialogCommand( 'InsertLink', FCKLang.InsertLinkDlgTitle,
FCKPlugins.Items['InsertLink'].Path + 'fck_InsertLink.html', 340, 200 ) ) ;
// 创建工具栏按钮 new FCKToolbarButton( 按钮名称, 按钮标题 ) ;
var oInsertLinkItem = new FCKToolbarButton( 'InsertLink', FCKLang.InsertLinkBtn ) ;
oInsertLinkItem.IconPath = FCKPlugins.Items['InsertLink'].Path + 'InsertLink.gif' ;
FCKToolbarItems.RegisterItem( 'InsertLink', oInsertLinkItem ) ;
//创建用于所有InsertLink操作的对象
var FCKInsertLink = new Object() ;
//在当前的选择上插入一个超级链接
// 这个添加的方法将在弹出窗口点击ok按钮时被调用。
// 该方法将会接收从对话框中传来的值。
FCKInsertLink.Add = function( linkname, caption )
{
if(linkname.substr(0,4) != "http" && linkname.substr(0,4) != "HTTP")
linkname = "http://"+linkname ;
FCK.InsertHtml("<a href='"+linkname+"'>"+caption+"</a>") ;
}
4:html
在InsertLink目录下添加请求的文件。
请求文件的模板代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Link Properties</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta content="noindex, nofollow" name="robots">
<script language="javascript">
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKLang = oEditor.FCKLang ;
var FCKInsertLink = oEditor.FCKInsertLink ;
window.onload = function ()
{
LoadSelected() ; //see function below
window.parent.SetOkButton( true ) ;
}
//从编辑器中得到当前的被选择的元素,有以下两种方法:
//1. 可用于image等元素的选择。
//var eSelected = oEditor.FCKSelection.GetSelectedElement() ;
//2. 由于有内部文本的元素
var eSelected = FCK.Selection.MoveToAncestorNode( 'A' )
if ( eSelected )
FCK.Selection.MoveToNode( eSelected ) ;
//如果超级练级被选择,那么显示超级链接的属性
function LoadSelected()
{
if ( !eSelected )
return ;
txtHref.value = eSelected.href ;
txtCaption.value = eSelected.innerText ;
//适合于第一种选择操作的代码:
// if ( eSelected.tagName == 'IMG' ) {
// -- code for setting dialog values -- }
// else
// eSelected == null ; //this will replace the current selection if not the right type
}
//点击ok按钮发生的操作
function Ok()
{
if ( document.getElementById('txtHref').value.length > 0 )
FCKInsertLink.Add( txtHref.value, txtCaption.value ) ;
return true ;
}
</script>
</head>
<body scroll="no" style="OVERFLOW: hidden">
<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<table cellSpacing="0" cellPadding="0" align="center" border="0">
<tr>
<td>
Type the URL for the link<br>
<input id="txtHref" type="text"><br>
Type the caption for the link<br>
<input id="txtCaption" type="text">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<!-- End Code -->
5:编辑fckconfig.js文件,并加入下列代码,注册插件。
FCKConfig.Plugins.Add( 'InsertLink', 'en' ) ;
//在工具栏集合中定义命令名称。
FCKConfig.ToolbarSets["Default"] = [
, ['InsertLink']
分享到:
相关推荐
除了预设的九套皮肤,FCKeditor还支持自定义皮肤。开发者可以创建自己的皮肤,通过调整CSS样式和图片资源,实现完全个性化的界面设计。这需要对CSS和HTML有一定的理解,但FCKeditor提供了详细的文档和示例,帮助...
修正了FCKeditor的文件上传,用户可以自己修改FCKeditor\editor\filemanager\browser\default\FileUploadInFCK.aspx.cs文件中的SaveFile方法。灵活的实现自己对上传文件的管理。需要配合AjaxPro.2.dll
以下是对FCKEditor自定义用户目录的修改步骤和相关知识点的详细说明。 1. FCKEditor获取用户文件目录的原理 FCKEditor在处理用户上传的文件时,需要确定文件存储的位置。其默认行为是在FCKeditor的安装目录下的...
在ASP环境中,FCKEditor的文件上传功能是通过文件管理器(file manager)和其对应的连接器(connector)实现的,连接器是一个ASP脚本,负责处理文件上传的逻辑。在FCKEditor的安装目录下,有一个专门负责文件上传的...
在本项目中,我们看到开发者对FCKeditor进行了深度的自定义,使其功能更加符合特定需求。自定义FCKeditor编辑框不仅涉及到前端界面的优化,也包括后端的集成与交互,以实现一个可以直接运行的应用。 首先,我们要...
4. **自定义扩展**:开发者可以通过API和插件系统对FCKeditor进行扩展,添加自定义功能或修改原有功能,以满足特定需求。 5. **多语言支持**:内置多种语言包,方便不同地区的用户使用。 6. **源代码视图**:用户...
- **自定义**:这意味着我们要对FCKeditor进行一定程度的修改和调整,使其符合特定项目的需求,可能包括外观、功能、行为等方面。 **详细知识点:** 1. **FCKeditor/CKEditor介绍**:FCKeditor是一个JavaScript...
这需要对AJAX技术有基本理解,以及对fckeditor的`FCK.ExecuteCommand()`方法的应用,该方法可以执行预定义或自定义的命令,包括发送异步请求。在收到服务器响应后,同样利用上述方法将数据整合到编辑器中。 总的来...
- FCKeditor支持自定义样式和模板,可以通过修改`fckstyles.xml`和`fcktemplates.xml`来实现。 - 可以利用`Plugins`目录中的插件扩展功能,或者开发自己的插件。 通过以上步骤,你可以在ASP.NET项目中成功集成并...
在FCKeditor目录里的fckconfig.js打开,找到FCKConfig.ToolbarSets[“Default”] 这里的设置是配置功能按钮的,你需要的留下,不需要的可以删掉,也可以注释掉。 如需要多种配置,可以设置多个FCKConfig....
在本文中,我们将深入探讨如何在JSP中使用自定义标签来输出Fckeditor,一个流行的JavaScript富文本编辑器。Fckeditor允许用户在网页上创建和编辑复杂的内容,提供了丰富的文本格式化选项,使得非技术人员也能方便地...
在IT行业中,富文本编辑器(FCKeditor)是一款广泛使用的在线文本编辑工具,它允许用户在网页上创建、编辑和格式化文本,类似于桌面版的Microsoft Word。FCKeditor以其丰富的功能和易于集成的特点,深受开发者喜爱。...
- **文件管理**:FCKeditor通常与文件上传和管理功能结合使用,需要设置一个文件服务器来存储和访问用户上传的文件,如图片和文档。 通过深入研究这些提供的资源,开发者不仅可以将FCKeditor集成到Java项目中,还能...
兼容目前的浏览器 里面包含FCKeditor编辑器和控件 一、集成方法 FCKeditor应用在ASP.NET上,需要两组文件,一组是FCKeditor本身,另一个是用于ASP.NET的FCKeditor控件(分为1.1和2.0两个版本,这里使用2.0版本)。 ...
- **自定义配置**:开发人员可以根据需求自定义编辑器的外观和功能,例如设置工具栏按钮、语言选项等。 **2. FCKeditor的使用方法** 在FCKeditor 2.6.8中,开发人员需要将压缩包解压后,将相关文件整合到网站项目...
FCKeditor是一款开源的Web富文本编辑器,广泛应用于网页制作和内容管理系统中,它提供了类似于Microsoft Word的编辑体验,允许用户在浏览器中编辑文本、插入图片、创建超链接等。这个压缩包“FCKeditor开发jar包及...
FCKeditor还允许开发者进行自定义和扩展,以满足特定需求: - **语言支持**:默认支持多种语言,可以通过修改语言文件进行定制。 - **插件开发**:可以开发新的插件,增加编辑器的功能,如插入特殊字符、地图等。 -...
***与FCKeditor结合使用时,为了保证用户输入的内容不为空,常规的实践是利用***的内置验证控件RequiredFieldValidator来实现。然而,在实践中,可能会遇到这样的问题:当第一次提交表单时,验证无法通过,需要提交...
总的来说,通过集成和自定义,我们可以让FCKeditor具备更高级的功能,如代码语法高亮和自定义保存,提升用户体验。对于开发者来说,理解并掌握这些扩展技巧对提升工作效率大有裨益。在实际应用中,可能还需要考虑...
Ckeditor是FCKeditor的后续版本,进行了大量的优化和改进,尤其是在用户体验和性能方面。然而,对于某些项目而言,FCKeditor 2.6.6可能更符合其简洁、低依赖性的需求。开发者可能会选择FCKeditor因为其较低的学习...