让百度文本编辑器Ueditor以纯文本粘贴内容的代码
今天做z-blog程序的网站,在网上找了一个采集今日头条等大型门户网站的文章采集发布器,发现采集回来的文章都有着各种各样的样式,发布到z-blog后的文章,样式极不统一,很难看。想让粘贴的内容是纯文本的形式粘贴进编辑器里面。于是在网上找了一段代码,粘贴到z-blog的后台发布文章模版edit.php里面,测试正常。需要注意的是:可能编辑器会出问题,z-blog发布文章后不自动返回列表页面,常用TAG标签不显示。
以下是代码:
,filterTxtRules: function() {
function delDom(node) { // 如果是图片、超链接 直接删除
node.parentNode.removeChild(node, node.innerText())
}
function transP(node) { // 清除样式
var html = node.innerHTML().replace(/( )+/i, ' ');
node.innerHTML(html);
var style = getStyle(node);
node.setAttr('style', style.join(';'));
}
function getStyle(node) { // 保留filterStyle中的样式
var style = [];
var filterStyle = ['font-weight', 'font-style', 'text-decoration', 'color', 'text-align'];
for (var i = 0, len = filterStyle.length; i < len; i++) {
if (node.getStyle(filterStyle[i])) {
style.push(filterStyle[i] + ': ' + node.getStyle(filterStyle[i]));
}
}
return style;
}
return {
// 黑名单,以下标签及其子节点都会被过滤掉
'-': 'script style object iframe embed input select',
'a': delDom, // 直接删除及其字节点内容
'img': delDom,
'p': transP,
'div': transP,
'span': transP,
'h1': transP,
'h2': transP,
'h3': transP,
'h4': transP,
'h5': transP,
'h6': transP,
'b': { '$': {} }, // $:{} 表示不保留任何属性
'br': { '$': {} },
'i': { '$': {} },
'li': { '$': {} },
'td': { '$': {} },
'ul': { '$': {} },
}
}()
...