使用filterRules过滤ueditor的内容
2019独角兽企业重金招聘Python工程师标准>>>
一、为什么需要使用filterRules
在使用富文本编辑器ueditor的时候,有时候需要控制内容,例如:不允许带链接、不允许插入图片、控制内部html的样式等等,除了设置toolbars之外,还要保证粘贴到编辑器里面的内容也能被控制,这时就需要用到filterRules属性了。
二、如何使用filterRules
ueditor在网站上提供了这样的功能演示,在http://ueditor.baidu.com/website/examples/里提供了ueditor的一些高级使用演示。打开页面的过滤规则定制化链接,按F12查看源代码,看看百度的示例是怎么写的:
UE.getEditor('editor', {serverUrl: '/server/ueditor/controller.php',filterRules: function () {return{span:function(node){if(/Wingdings|Symbol/.test(node.getStyle('font-family'))){return true;}else{node.parentNode.removeChild(node,true)}},p: function(node){var listTag;if(node.getAttr('class') == 'MsoListParagraph'){listTag = 'MsoListParagraph'}node.setAttr();if(listTag){node.setAttr('class','MsoListParagraph')}if(!node.firstChild()){node.innerHTML(UE.browser.ie ? ' ' : '<br>')}},div: function (node) {var tmpNode, p = UE.uNode.createElement('p');while (tmpNode = node.firstChild()) {if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) {p.appendChild(tmpNode);} else {if (p.firstChild()) {node.parentNode.insertBefore(p, node);p = UE.uNode.createElement('p');} else {node.parentNode.insertBefore(tmpNode, node);}}}if (p.firstChild()) {node.parentNode.insertBefore(p, node);}node.parentNode.removeChild(node);},//$:{}表示不保留任何属性br: {$: {}},
// a: function (node) {
// if(!node.firstChild()){
// node.parentNode.removeChild(node);
// return;
// }
// node.setAttr();
// node.setAttr('href', '#')
// },
// strong: {$: {}},
// b:function(node){
// node.tagName = 'strong'
// },
// i:function(node){
// node.tagName = 'em'
// },
// em: {$: {}},
// img: function (node) {
// var src = node.getAttr('src');
// node.setAttr();
// node.setAttr({'src':src})
// },ol:{$: {}},ul: {$: {}},dl:function(node){node.tagName = 'ul';node.setAttr()},dt:function(node){node.tagName = 'li';node.setAttr()},dd:function(node){node.tagName = 'li';node.setAttr()},li: function (node) {var className = node.getAttr('class');if (!className || !/list\-/.test(className)) {node.setAttr()}var tmpNodes = node.getNodesByTagName('ol ul');UE.utils.each(tmpNodes,function(n){node.parentNode.insertAfter(n,node);})},table: function (node) {UE.utils.each(node.getNodesByTagName('table'), function (t) {UE.utils.each(t.getNodesByTagName('tr'), function (tr) {var p = UE.uNode.createElement('p'), child, html = [];while (child = tr.firstChild()) {html.push(child.innerHTML());tr.removeChild(child);}p.innerHTML(html.join(' '));t.parentNode.insertBefore(p, t);})t.parentNode.removeChild(t)});var val = node.getAttr('width');node.setAttr();if (val) {node.setAttr('width', val);}},tbody: {$: {}},caption: {$: {}},th: {$: {}},td: {$: {valign: 1, align: 1,rowspan:1,colspan:1,width:1,height:1}},tr: {$: {}},h3: {$: {}},h2: {$: {}},//黑名单,以下标签及其子节点都会被过滤掉'-': 'script style meta iframe embed object'}}()});
filterRules的属性是一个函数,返回了内容节点的过滤规则,过滤规则也是函数,提供对应的节点参数node,例如:
span:function(node){if(/Wingdings|Symbol/.test(node.getStyle('font-family'))){return true;}else{node.parentNode.removeChild(node,true)}
}
这样一来,我们就可以使用filterRules来编写符合自己需求的过滤规则了。
转载于:https://my.oschina.net/u/871551/blog/675955
使用filterRules过滤ueditor的内容相关推荐
- python和R对dataframe进行连接、行过滤更新列内容:dplyr、merge、inner、left、right、inner_join、left_join、sort_values、loc
python和R对dataframe进行连接.行过滤更新列内容:dplyr.merge.inner.left.right.inner_join.left_join.sort_values.loc.ar ...
- html 保存草稿,利用localStorage实现对ueditor编辑内容定时保存为草稿,ueditor草稿箱...
利用localStorage实现对ueditor编辑内容定时保存为草稿,ueditor草稿箱 直接看代码吧 1.引入ueditor和ueditor的使用我就不细说了 详情请戳http://blog.c ...
- Ueditor setContent内容含引号显示异常
>问题描述 : 个人写的博客项目,使用Ueditor时,修改博客模块,将从数据库中取出的博客内容的HTML值,转发到展示界面. 通过隐藏域和el表达式暂存博客的HTML内容, <input ...
- 过滤 Excel 表格内容中的无效字符
需求 最近在做一个Excel数据处理工具时发现,总是有些无效字符干扰,比如:不间断空格,制表符等. 所以,记录下遇到的无效字符,以便后续处理时统一过滤. 实现 获取表格内容,并将格式转换为文本格式: ...
- 推荐机制 协同过滤和基于内容推荐的区别
基于人口统计学的推荐 基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后 ...
- Linux查看配置文件过滤无用的内容
很多开源软件的配置文件里有大量的注释内容,有时候我们想看配置文件中有哪些属性,一般是用cat+grep的方式查看,但是会看到很多无用的注释和大量的空行,不够直观,下面的命令可以方便的过滤掉那些命令,可 ...
- 百度编辑器ueditor,编辑内容过多时,工具栏不可见,不方便编辑或上传问题
百度有这个配置文件 ueditor.config.js 里面本来是有自动工具栏浮动到顶部,可以一直显示工具栏,但我测试,一直不能正常实现.功能不正常 //是否保持toolbar的位置不动,默认true ...
- 敏感词过滤算法 为内容保驾护航 Java/.Net/C++/c/Python等语言是如何进行敏感词打码限制的 高效防范违规内容
有人的地方,就有江湖,有输入框的地方,就有注入风险!有输入框的地方,就有敏感词!敏感词就像一个平台杀手,可能直接导致平台被封锁! 敏感词是一个APP.一个网站.一个内容平台的"杀手" ...
- 协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)
协调过滤推荐概述 协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分.所谓在线协同,就是通过在线数据找到用户可能喜欢的物品,而离线过 ...
最新文章
- MyBatis的DAO接口中参数传递建议使用map类型的原因
- Java Code Geeks和Packt提供的Hadoop书籍赠品
- 修改webpack的publicPath为动态设置以适配公司活动平台
- LeetCode 683. K 个空花盆(set/滑动窗口)
- Android拍照上传代码样例
- 绘制等压面图_等压面练习
- Eclipse插件安装方式
- 教你用SingalR实现后台开发程序运行时时检测
- 计算机四级笔试1,9月全国计算机等级考试四级网络工程师笔试试卷(1)
- 谷歌全新OS曝光:它是操作系统世界里一种全新的艺术
- FPV穿越机飞行入门练习
- 2022软工K班个人编程任务
- 临沂最美乡村医生彭玉梅:救人遇车祸身亡
- Python的列表解析式,集合解析式,字典解析式
- 2011计算机一级a,2011河北省大学生计算机一级A卷操作步骤
- html做表格(个人简历)
- PPT无法打开,总是提示修复该如何解决
- js监听鼠标拖动事件(按住左键拖动触发,松开左键取消)
- Redirect 重定向
- lin通信ldf文件解析_LIN通讯机制
热门文章
- YUV序列下采样以及彩色4:2:0与灰度4:0:0转换---基于matlab实现
- fiddler重定向
- c语言语法sc,适合于嵌入式系统的C语言单元测试框架:SCUNIT
- 还没休年假的小伙伴注意了...事关你的合法权益
- python文件读取方法
- c语言用数组存储高精度数,高精度运算c语言.pptx
- java怎么录入4位会员号_[Java源码]键盘输入会员卡号,对其格式、位数进行判断,不符合规则会跳转重新输入 | 学步园...
- oracle 表空间 归档,oracle数据库表空间及归档
- upper_bound 和lower_bound彻底搞懂
- java validate 框架_如何使用validator框架来validatebean