FckEditor工具栏添加自定义按钮,并实现点击按钮的功能

本文介绍了如何在FCKEditor编辑器中添加一个自定义按钮,用于处理复制外部网站新闻时的图片问题。通过修改fckconfig.js、zh-cn.js和fckeditorcode_gecko.js文件,实现了在工具栏上显示名为'TransExternalImg'的按钮,并赋予其下载并上传到本地服务器的功能。详细步骤包括添加按钮到ToolbarSets、定义按钮中文名、注册到toolbar、实例化按钮功能以及实现按钮点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     由于前几天,项目中需要在fckeditor编辑器中,将别的网站中的新闻复制进来的时候,里面的图片存储在这些网站的服务器上,需要将这些外部图片下载下来,然后存放在我们自己的服务器上,然后替换这些外部图片地址。

     这里就需要在fckeditor编辑器中添加一个自定义的按钮,并实现该按钮的功能:下载和上传到我们自己的服务器。

需要修改的文件包括:

     fckconfig.js zh-cn.jsfckeditorcode_gecko.js(非IE浏览器)或者fckeditorcode_ie.jsIE浏览器)

 

步骤:

1、定义按钮

   Toolbar中添加新的功能按钮,需要在ToolbarSets中添加我们按钮的名称,我们定义按钮名称为TransExternalImg

   fckconfig.jsFCKConfig.ToolbarSets[content]中添加按钮名称(这个content是我们项目中使用的工具栏,跟defaultbasic中的类似)

   FCKConfig.ToolbarSets["Content"] = [

            .......

          ['Style','FontFormat','FontName','FontSize'],

          ['TextColor','BGColor','FitWindow','TransExternalImg']

    ] ;    

 

2、定义按钮的中文名字

   zh_cn.js文件中添加:

    var FCKLang =

     {

      ToolbarCollapse : "折叠工具栏",

      ToolbarExpand : "展开工具栏",

      // Toolbar Items and Context Menu

      Save : "保存",

      ransExternalImg : "转换外部图片资源",

     }

    这样当我们把鼠标移到工具栏的这个按钮时,会显示该按钮的中文名称   

 3、将按钮注册到toolbar

    需要在fckeditorcode_gecko.js中注册该按钮到工具栏:

    查找:

    case 'NewPage':

         B = new FCKToolbarButton('NewPage', FCKLang.NewPage, null, null, true, null, 4);

      break;

    在后面插入

      case 'TransExternalImg':

            B=new FCKToolbarButton('TransExternalImg',FCKLang.TransExternalImg,null,null,false,true,44);

      break;

  最后面的参数数字表示的是按钮显示的样子,你可以替换成其他数字。   这样就可以在工具栏中中显示定义的按钮了。

4、按钮功能实例化

    修改ckeditorcode_gecko.js

    查找

    case 'NewPage':

          B = new FCKNewPageCommand();

    break;

   在后面加:

    case 'TransExternalImg':

       B=new FCKTransExternalImgCommand();

    break;

 5、实现按钮点击的事件功能  

   ckeditorcode_gecko.js

     查找:

        var FCKNewPageCommand = function() {

          this.Name = 'NewPage';

        };

    FCKNewPageCommand.prototype.Execute = function() {

         FCKUndo.SaveUndoStep();

        FCK.SetData('');

        FCKUndo.Typing = true;

       FCK.Focus();

    };

    FCKNewPageCommand.prototype.GetState = function() {

        return 0;

   };

   复制上面的代码一份,对照修改为我们自己的:

     var FCKTransExternalImgCommand=function(){

         this.Name='TransExternalImg';

    };

   FCKTransExternalImgCommand.prototype.Execute=function()

     {

       //这里可以定义自己的功能,比如

        alert("测试");

    };

  FCKTransExternalImgCommand.prototype.GetState=function(){return 0;};

这样就能在我们的工具栏中显示了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值