123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <!DOCTYPE HTML>
- <html>
- <head>
- <title>过滤规则定制化</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
- <script type="text/javascript" charset="utf-8" src="../ueditor.config.js"></script>
- <script type="text/javascript" charset="utf-8" src="editor_api.js"></script>
- <style type="text/css">
- .clear {
- clear: both;
- }
- </style>
- </head>
- <body>
- <p>尝试粘贴内容近来,这里边不能粘贴任何inline的样式,不能有iframe,style,script,embed等标签,表格不能嵌套</p>
- <div>
- <script id="editor" type="text/plain" style="width:500px;height:500px"></script>
- </div>
- </body>
- <script type="text/javascript">
- UE.getEditor('editor', {
- 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'
- }
- }()
- });
- </script>
- </html>
|