百度UEditor自动删除超级链接与外链的方法

UEditor确实是一个强大的编辑器,昨天领导说:

要编辑器的图文内容中,不能有外链/超级链接,需要进行清除。

然后我们这些苦逼的程序员就得屁屁的去改了。我尝试了2种方法

1、采用UEditor的自带的属性:

在ueditor.config.js中启用纯文本粘贴:

  
 

 代码如下 复制代码
  ,pasteplain:true  //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴
       // 纯文本粘贴模式下的过滤规则
        , 'filterTxtRules' : function(){
            function transP(node){
                node.tagName = 'p';
                node.setStyle();
            }
            return {
                ////直接删除及其字节点内容
                'a': { $: {} },
                //'-' : 'script style object iframe embed input select',
                //'p': {$:{}},
                //'br':{$:{}},
                //'div':{'$':{}},
                //'li':{'$':{}},
                //'caption':transP,
                //'th':transP,
                //'tr':transP,
                //'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,
                //'td':function(node){
                //    //没有内容的td直接删掉
                //    var txt = !!node.innerText();
                //    if(txt){
                //        node.parentNode.insertAfter(UE.uNode.createText('    '),node);
                //    }
                //    node.parentNode.removeChild(node,node.innerText())
                //}
            }
        }()

这个会有问题,就是即使没有外链,文本都没有格式了。否了。

2、UEditor提供的命令和事件

参考详细文档:http://ueditor.baidu.com/doc/

这个需要在调用的Ueditor的时候定义事件:

 

 代码如下 复制代码
var editor;
  editor = UE.getEditor('container', {
        autoHeight: false,imagePopup:true
   });
     editor.addListener('contentChange', function () {
      editor.queryCommandValue("unlink");
     })
    editor.addListener('ready', function (editor) {
       //获取数据方法
    });

这个是有问题的,因为在contentChange的时候,方法调用了,但是editor.queryCommandValue("unlink");根本无效。 我跟踪了一下js代码,发现editor.queryCommandValue("unlink");的unlink会对选择区域进行判断,所以如果没有选择区域的话,这个方法是不执行的。

但是我也没怎么选择区域。

 代码如下 复制代码
 
UE.commands['unlink'] = {
        execCommand: function () {
          //var as=  editor.selection.getNative();
            var range = this.selection.getRange(),
                bookmark;
            if(range.collapsed && !domUtils.findParentByTagName( range.startContainer, 'a', true )){
                return;
            }
            bookmark = range.createBookmark();
            optimize( range );
            range.removeInlineStyle( 'a' ).moveToBookmark( bookmark ).select();
        },
        queryCommandState : function(){
            return !this.highlight && this.queryCommandValue('link') ?  0 : -1;
        }
    };

就是这个  var range = this.selection.getRange(),闹得。。。UEditor里没有找到设置高亮选择的命令和方法,有知道给说一下。

 

四、换思路了

我最后无奈了,只能在文章编辑完成后取出内容,用判断超级链接/a/http的正则表达式屏蔽掉外链,当然正则表达C#和js都可以,我在这里用的是js。

 代码如下 复制代码
 
 aaa.description = editor.getContent();
    var reg2 = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
    var reg = new RegExp(reg2);
        aaa.description = aaa.description.replace(reg, "");

解决问题的思路往往就是这样,从最理想的开始,到最无奈的结束。

时间: 2024-10-26 02:33:55

百度UEditor自动删除超级链接与外链的方法的相关文章

杨林SEO:巧用百度知道为中文网站优化带外链

今天沈阳SEO杨林,与大家分享<巧用百度知道为中文网站优化带外链的方法>,凡是从事中文网站优化的朋友都知道,百度自己产品对中文网站优化的影响.尤其是近来百度的产品越来越多的出现在第一页,让许多的优化人员羡煞和嫉妒不已.其实百度的许多的产品,也是中文网站推广的一种很好的平台. 百度账号现在都是靠邮箱注册的,如果说你不进行百度养号的话,你以后靠什么推广,手上的百度号至少应该有20.30个,不知道你手上又有多少百度账号.你想一想,你号多,都同时进行,你回答别人的问题可以,自问自答难道不可以吗? 而且

DreamWeaver中批量删除超级链接的方法

  在线问答网友提问,请问专家DreamWeaver 8中如何批量删除超级链接? 解决办法,依次打开DreamWeaver-编辑-查找和替换(或可直接使用快捷键,Ctrl+F)-搜索范围选择"源代码",在查找框内写入"",替换框内请留空.然后选择"使用正则表达式"前的勾.最后替换全部即可.详细如下图:

通过百度站长外链工具来看文本链接是不是外链

摘要: 记得早前接触SEO的时候经常去一些论坛,如站长论坛,seowhy.站长网等论坛,很多人都喜欢在签名下加纯文本链接,到现在我想还有很多人在纠结文本链接是否算是外链?每个搜索引擎都 记得早前接触SEO的时候经常去一些论坛,如站长论坛,seowhy.站长网等论坛,很多人都喜欢在签名下加纯文本链接,到现在我想还有很多人在纠结文本链接是否算是外链?每个搜索引擎都有他们的标准,现在我们通过百度站长外链工具来看文本链接是不是外链把! 从这张图来看,大家都知道优酷上传视频是没有办法描文本的,但可以纯文本

反向链接与外链的关系你还记得吗

  反向链接和外链是做seo经常看到,听到的,很多人以为二者是一个意思或不能很好的区别,其实现在的优化我们也不需要分那么清楚,把外链当反链做,把反链当外链做就行了.但是身为优化人员也是需要分清的,下面我们来看看. 外链:也叫外部链接,或者是导入链接,个人认为外链是能够给你带来蜘蛛爬行访问的链接,也就是说从网站外部的其他网页链接到你的网站的链接. 反链:很多时候也是叫外链.导入链接,但是准确的来讲应该叫做反向链接.某些情况下反链是包含外链的,反向链接指的是两个网页之间直接的关系.有两个网页,网页X

百度新算法后谈如何建设外链和建设外链的错误行为

自从百度"绿萝"算法上线后许多网站都尝到了苦果:收录被K.网站降权.排名下降...等,这一切都可能是因为在网站建设的过程中采用了不合理的外链建设方法,新算法出台后迷惘中的草根站长也一直在寻求解决的方法,特别是针对外链建设这一块的工作该如何开展.这并不是一个特别复杂的问题,可也并不简单,下面就本人的一些经验来尝试分析下当下的外链建设工作如何开展. 一:抛开以前的陋习拒绝速成 在以往凡是站长集中交流的环境中,都少不了几种广告:外链买卖.自动发帖机.webshell挂黑链等,并且大量站长都在

面对百度算法新规则如何增加有效外链

但凡是做中文网站的站长,面对百度总是爱恨交加,毕竟一方面它是网站的"衣食父母",对于网站从搜索引擎得到的流量起到了决定性的作用,站长不能对百度有丝毫的怠慢;而另一方面百度经常更改的算法规则让站长在优化时总是容易摸不着头脑,特别是百度有名的人工干预更是对喜欢花心思进行SEO优化的站长有时造成打击.所以,站长不得不随着百度的改变而不断摸索,跟踪百度最新的动态,方能及时应对其算法调整带来的改变. 而在最近,百度又不断尝试着更改其排名算法,用以应对那些不断在研究它试图摸透它的评估体系的站长们,

百度站长工具推出新工具-拒绝外链工具

摘要: 2013年3月1日,百度站长工具推出新工具-拒绝外链工具,该工具目前处于beta测试阶段. 该拒绝外链工具从bate升级到内测,随后会逐渐升级全面开放,目前在众多营销人员中有部分从业者 2013年3月1日,百度站长工具推出新工具-拒绝外链工具,该工具目前处于beta测试阶段. 该拒绝外链工具从bate升级到内测,随后会逐渐升级全面开放,目前在众多营销人员中有部分从业者具备内测资格,当然,也可以主动出击,主动向百度站长平台申请资格内测,申请联系邮箱地址为:zhanzhangpingtai@

通过百度分享工具做真实推荐式外链

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 百度分享工具是百度在2011年6月上线的一款分享工具,在上线之后,一直都是十分的低调.百度分享工具的出台,其实主要是为了提高搜索引擎的用户体验还有同时提高自身的品牌知名度.对比其他的分享工具来说,百度出台的分享工具显然更加权威,并且具有特殊的意义. 在过去,刷百度分享对网站排名到底有没有影响,一直都是站长们在讨论的话题.但是,经过了今年两次的外链算法变革之后,真实推荐的外链一直都是我们的重点研究对象.而分享工具的意义相信大家也十分的清楚,分

百度站长平台正式开放官方的外链查询工具

摘要: 一直以来对做SEO的站长们来说,外链查询都是一个比较头疼的问题.常用的外链查询方法有百度的domain.爱站的查询等,但是没有一个具体准确的工具能够提供给我们外链的参考.12月 一直以来对做SEO的站长们来说,外链查询都是一个比较头疼的问题.常用的外链查询方法有百度的domain.爱站的查询等,但是没有一个具体准确的工具能够提供给我们外链的参考.12月5日百度站长平台正式开放官方的外链查询工具,众多站长期待已久的外链查询终于有了一个较为有参考性的工具.下面我们一起来百度外链工具的介绍和功