覆盖默认的ctrl+v和右键粘贴事件的实现

我用的kindeditor版本是3.5.1,客户的需求是希望在编辑器的窗口内执行ctrl+v或者右键粘贴的时候,要把多余的HTML等代码过滤掉,只保留文本,相当于"粘贴为无格式文本"控件所做的那样.摸索了几天,终于实现了.实现方式如下:

 

1、注释掉kindeditor.js文件的193行

//this.add(newElement, 'paste', handler, id);

 

2、在kindeditor.js中的KE.create函数结束前(即2881行),加上下面的代码

        function pasteHandler(e){
         e.returnValue=false;
         KE.event.stop(e);
         KE.plugin['plainpaste'].click(id);
        };
        var newElement = (iframeDoc.nodeName == '#document') ? iframeDoc.body : iframeDoc;
        KE.event.add(newElement, 'paste', pasteHandler, id);

 

说明:pasteHandler函数是ctrl+v或者右键粘贴的时候执行的方法,这里为了浏览器的通用性,调用了"粘贴为无格式文本"控件的函数。如果不需要考虑浏览器的通用性的话,可以在pasteHandler里直接和剪切贴交互,类似于下面这样的代码(需经过修改后才可用)。

        function pasteHandler(e){
         e.returnValue=false;
         KE.event.stop(e);


        var html = window.clipboardData.getData();

  html = KE.util.escape(html);
  html = html.replace(/ /g, ' ');
  html = html.replace(/\r\n|\n|\r/g, "<br />$&");
  KE.util.insertHtml(id, html);
  KE.util.focus(id);         

        };

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值