`
songhongchen
  • 浏览: 122727 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在FCKeditor中使用自定义的图片与附件上传页面

阅读更多
     FCKeditor自带的附件图片上传功能已经比较好,但有些时候仍然不能满足用户的需求,于是就产生了一个改变FCKeditor附件上传功能的需求。由于FCKeditor大部分实现都是脚本,想要在原有的功能上进行扩展,可能工作量比新开发一个上传页面要大的多,而且更难维护。
      一般来讲,公司都有自己的附件与图片资源管理功能,比如图片的预览、附件的删除和添加上传,以及直接将图片的地址直接添加到FCKeditor编辑器中等功能。
      我首先是将公司已经开发好的图片与附件资源管理页面功能从某系统中分离出来,这个页面的效果图如下:本页最后的图片
http://songhongchen.iteye.com/upload/attachment/104154/a0f6d0b6-f213-3734-95f9-f5ad320265ce.jpg
有了现成的图片与附件资源管理功能,那么只需要将它集成到FCKeditor中即可。翻了一下FCKeditor的脚本传码,发现FCKeditor的上传使用的页面是
FCKEditor\editor\fckdialog.html
,比如我们点击FCKeditor中上传图片或者上传附件时,就弹出的这个页面。那么只需要将FCKeditor点击传图片或者上传附件时弹出的是我们自定义的页面就可以了。经过一段时间的查找,最终找到两个脚本文件:
FCKEditor\editor\js\fckeditorcode_ie.js IE使用
FCKEditor\editor\js\fckeditorcode_gecko.js Firefox使用

修改fckeditorcode_ie.js文件,查找如下代码:
var J=FCKConfig.BasePath+'fckdialog.html'
,替换成自定义的图片与附件管理页面相对位置,我替换后为如下:
var J = '../../ContentHtmlTextBox/HelperScripts/ftb.HtmlFileIframe.aspx';

因为FCKeditor使用的是弹出模态窗口,而且窗口的宽高都很小,有必要改大一些,找到如下代码:
var G=F.showModalDialog(C,A,"dialogWidth:"+D+"px;dialogHeight:"+E+"px;help:no;scroll:no;status:no");
,替换成为:
var G=F.showModalDialog(C,A,"dialogWidth:800px;dialogHeight:800px;");

就这样,再点击FCKeditor图片或者上传附件时弹出的就是我们自定义的页面了。Firefox浏览器也一样,只是修改的文件不同而已。

      因为FCKeditor以前实现了点击确定后,上传的资源(如图片)会直接插入到指定的位置,这个功能我们仍然需要,比如双击预览的缩略图,那么此图片的地址就会直接插入到编辑器中的相应位置。复制原来FCKEditor\editor\fckdialog.html页面点击确定后执行的代码到我们的自定义页面中,执行相同的功能,原来的代码如下:
function Ok()
{
	if ( GetE('txtUrl').value.length == 0 )
	{
		window.parent.SetSelectedTab( 'Info' ) ;
		GetE('txtUrl').focus() ;

		alert( FCKLang.DlgImgAlertUrl ) ;

		return false ;
	}

	var bHasImage = ( oImage != null ) ;

	if ( bHasImage && bImageButton && oImage.tagName == 'IMG' )
	{
		if ( confirm( 'Do you want to transform the selected image on a image button?' ) )
			oImage = null ;
	}
	else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' )
	{
		if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )
			oImage = null ;
	}
	
	if ( !bHasImage )
	{
		if ( bImageButton )
		{
			oImage = FCK.EditorDocument.createElement( 'INPUT' ) ;
			oImage.type = 'image' ;
			oImage = FCK.InsertElementAndGetIt( oImage ) ;
		}
		else
			oImage = FCK.CreateElement( 'IMG' ) ;
	}
	else
		oEditor.FCKUndo.SaveUndoStep() ;
	
	UpdateImage( oImage ) ;

	var sLnkUrl = GetE('txtLnkUrl').value.trim() ;

	if ( sLnkUrl.length == 0 )
	{
		if ( oLink )
			FCK.ExecuteNamedCommand( 'Unlink' ) ;
	}
	else
	{
		if ( oLink )	// Modifying an existent link.
			oLink.href = sLnkUrl ;
		else			// Creating a new link.
		{
			if ( !bHasImage )
				oEditor.FCKSelection.SelectNode( oImage ) ;

			oLink = oEditor.FCK.CreateLink( sLnkUrl ) ;

			if ( !bHasImage )
			{
				oEditor.FCKSelection.SelectNode( oLink ) ;
				oEditor.FCKSelection.Collapse( false ) ;
			}
		}

		SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ;
		SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ;
	}

	return true ;
}

修改之后:
var oEditor = window.parent.dialogArguments.Editor;
        var FCK = oEditor.FCK;
        function Ok(sLnkUrl,isImage) {
			if(isImage=="image"){
				oImage = FCK.CreateElement('IMG');           
				oImage.alt = "Image";
				oImage.src = sLnkUrl;				
				oEditor.FCKSelection.SelectNode(oImage);
				oEditor.FCKSelection.Collapse(false);
			 }
			 else{
				oLink = oEditor.FCK.CreateLink( sLnkUrl ) ;
				oEditor.FCKSelection.SelectNode( oLink ) ;
				oEditor.FCKSelection.Collapse( false );
			 }
            window.close();
        }

注意因为FCKeditor使用的是弹出模态窗口,而模态窗口在刷新提交时会弹出新的页面,为避免弹出新的页面,需要使用一个中间页面做为中转,此页面的代码非常简单,就一个iframe,
<iframe src='ftb_HtmlFile.aspx' width='100%' height='100%' scrolling=auto></iframe>

在ftb_HtmlFile.aspx页面就是图片与附件资源管理的功能了。
此图片就是页面ftb_HtmlFile.aspx的截图
  • 大小: 32 KB
  • 大小: 37.9 KB
1
1
分享到:
评论
1 楼 jeff40577 2009-05-22  
很有用,最近正要做相关的东西,谢谢。

相关推荐

    fckeditor 编辑器 和使用说明

    - `FCKeditor .Net 使用方法.txt`文件很可能包含了针对.NET开发环境的详细步骤,如何在ASP.NET页面中集成fckeditor,以及如何处理上传的文件等。 4. **实例解析** - `fckeditor`文件夹可能包含了编辑器的示例代码...

    FCKEditor 2.6.5 增加附件、文件&文件夹删除、按用户分上传文件夹功能

    FCKEditor 2.6.5引入了更完善的附件管理机制,允许用户轻松上传、查看和删除与内容相关的各种文件。这一功能对于需要在文章或帖子中添加图片、文档或其他多媒体资源的用户非常有用。用户可以通过编辑器界面直接操作...

    fckeditor增强版

    它在标准的Fckeditor基础上进行了扩展,增加了对上传附件的支持,使得用户可以直接在编辑器内添加并管理各种类型的文件,如图片、文档、视频等。这一增强功能大大提升了编辑器的实用性和便捷性,尤其对于需要频繁...

    传智播客 fckeditor 笔记

    在本笔记中,我们将深入探讨FCKeditor的使用、配置及常见问题的解决方法。 ### 一、FCKeditor的基本使用 1. **安装与引入**:首先,你需要从官方网站下载FCKeditor的源码包,解压后将文件上传至服务器。在HTML页面...

    FCKeditor for java文本编辑器

    3. **配置路径**:配置FCKeditor的路径,包括编辑器的JavaScript文件、图片上传目录、Flash和其它附件的路径。 4. **嵌入编辑器**:在需要显示编辑器的JSP或HTML页面中,通过JavaScript代码引入FCKeditor并初始化。 ...

    fckeditor-java-2.5-bin.tar.gz

    4. **HTML页面集成**:在需要使用FCKeditor的HTML页面中,引入编辑器的JavaScript文件,并设置编辑器的ID和初始化参数。 5. **后台处理**:在服务器端,设置接收上传文件的处理逻辑,如保存文件到指定目录,返回文件...

    fckeditor 2.6 测试实例 WebTest

    同时,`WebTest` 也可能展示了如何处理用户上传的文件,如图片和附件,这对于构建内容管理系统(CMS)或其他需要用户创建和编辑内容的应用非常有价值。 在深入研究`WebTest`之前,开发者应具备基本的HTML、...

    FCKeditor_2.6.6压缩版+xml文件

    FCKeditor是一款经典的开源富文本编辑器,广泛应用于网页中,允许用户在浏览器端进行复杂的文本格式化操作,如插入图片、链接、表格等。它为网页内容的创建和编辑提供了一个直观且功能丰富的界面,类似于桌面应用...

    asp.net 实现了FCK文档编辑和附件上传

    CKFinder是一款与CKEditor配套使用的文件管理器,它允许用户在服务器上浏览、上传和管理文件。在ASP.NET中实现CKFinder,需要下载其服务器端组件,通常是根据.NET平台编写的。安装后,配置CKFinder的连接参数,使其...

    维克企业网站管理系统.NET全能版(WakeIT Corp)

    产品上传过程中,支持对产品图片添加图片或文字水印,上传图片同时生成缩略图;产品类别支持无限级分类,也支持上传分类图片及加入详细的分类信息;品牌设置支持上传品牌图片及添加详细品牌信息;附带产品批量导入...

    kindEditor编辑器与struts2整合的源文件

    3. **创建JSP页面**:在JSP页面中,创建一个form表单,设置表单的enctype属性为"multipart/form-data",以便能够提交包含图片或其他附件的数据。在表单内嵌入KindEditor的编辑器实例,通过JavaScript初始化编辑器并...

    dtcms网站管理系统

    5.上传图片或文件时可在同一个页面重复使用,也就是说一个页面可以放N个上传按钮; 6.修正了后台添加广告或编辑广告内容时,如果是代码类型发生错误问题; 7.换了广告焦点图FLASH插件,解决了用户反映第一张图片无法...

    DTCMS网站内容管理系统 V1.0 Beta2源码

    上传图片或文件时可在同一个页面重复使用,也就是说一个页面可以放N个上传按钮; 6.修正了后台添加广告或编辑广告内容时,如果是代码类型发生错误问题; 7.换了广告焦点图FLASH插件,解决了用户反映第一张图片...

    CKEditor_+_CKFinder_配置

    CKFinder 是一个与 CKEditor 配合使用的文件管理器,允许用户在编辑器中方便地上传、浏览和管理图片、文档等资源。 配置 CKEditor 和 CKFinder 的过程主要包括以下几个步骤: 1. **安装 CKEditor**: - 将 ...

    第三方控件_C#_asp.net_

    在C#和asp.net中,可以轻松集成CKEditor,通过服务器端和客户端API控制编辑器的行为,如限制格式、上传附件等。 除了以上提及的控件,第三方库还提供了许多其他功能,比如图表绘制、日历控件、下拉树形选择、表单...

    Z-Blog 2.1 Phoenix Build 130128.rar

    支持批量上传图片、附件,支持涂鸦,支持插入视频和在线搜索视频,支持代码高亮哦亲~ 模板功能增强 全新制作CustomMeta插件,可以在发表文章时插入字段。合并部分模板文件,不需要再单独添加。支持不同文章、不同...

    Z-Blog v2.0 Beta1 Build121001.rar

    支持批量上传图片、附件,支持涂鸦,支持插入视频和在线搜索视频,支持代码高亮哦亲~  模板功能增强  全新制作CustomMeta插件,可以在发表文章时插入字段。合并部分模板文件,不需要再单独添加。支持不同文章、...

    Z-Blog 2.0 Doomsday Build 121221

    支持批量上传图片、附件,支持涂鸦,支持插入视频和在线搜索视频,支持代码高亮哦亲~ 模板功能增强 全新制作CustomMeta插件,可以在发表文章时插入字段。合并部分模板文件,不需要再单独添加。支持不同文章、不同...

    PJBlog2 v2.5

    4. 自定义模块,可以自己修改页面上的的布局,让不懂制作网页的用户也能自己增加和修改页面上的版块 5. Skin功能,随时可以给自己的Blog换上新的CSS样式界面 6. 自定义分类,可以同时定制外部连接分类和Blog内置...

Global site tag (gtag.js) - Google Analytics