地名: | 区域代码: |
镇级街道: | 区域代码: |
区县级市: | 电话区号: |
所在城市: | 邮政编码: |
所在省份: | 营业时间: |
城市代码: | 所属商圈: |
车牌号码: | 电话: |
所属类型: | 地址: |
昨天写个一篇如何在执行一键清除HTML功能键的同时去掉kindeditor编辑器内容的所有超链接的博客,今天琢磨了一下是否可以更加直接地在粘贴内容至kindeditor编辑器内的时候就清楚HTML标签和去掉所有的超链接,换句话说就是只能够粘贴纯文本进入kindeditor编辑器内。
通过翻看kindeditor-min.js源码文件,查找“b.pasteType === 1”关键词,我们看到的代码片段如下所示:
1.b.pasteType === 1 && (d = d.replac(/<br[^>]*>/ig, "\n"), d = d.replac(/<\/p><p[^>]*>/ig, "\n"), d = d.replac(/<[^>]+>/g, ""), d = d.replac(/ /ig, " "), d = d.replac(/\n\s*\n/g, "\n"), d = d.replac(/ {2}/g, " "), b.newlineTag == "p" ? /\n/.test(d) && (d = d.replac(/^/, "<p>").replac(/$/, "</p>").replac(/\n/g, "</p><p>")) : d = d.replac(/\n/g, "<br />$&")), b.insertHtml(d, !0))
这段代码就是实现了CTRL+V的粘贴功能,获取粘贴板内的内容d,然后对其进行简单性的处理然后赋值给编辑器b。
在这里我们不难发现并未去除过多的HTML代码且清楚超链接,所以我们需要在这里对编辑器对象b做一些后加处理,我们通过b.text()就可以拿到编辑器内的纯文本内容了,然后再将其赋值给编辑器b不就行了么?
所以得到了修改后的代码片段:
1.b.pasteType === 1 && (d = d.replac(/<br[^>]*>/ig, "\n"), d = d.replac(/<\/p><p[^>]*>/ig, "\n"), d = d.replac(/<[^>]+>/g, ""), d = d.replac(/ /ig, " "), d = d.replac(/\n\s*\n/g, "\n"), d = d.replac(/ {2}/g, " "), b.newlineTag == "p" ? /\n/.test(d) && (d = d.replac(/^/, "<p>").replac(/$/, "</p>").replac(/\n/g, "</p><p>")) : d = d.replac(/\n/g, "<br />$&")), b.insertHtml(d, !0), b.html(b.text()))
不难看出只是在最后的地方追加了
1.b.html(b.text())
这样一来保存js文件,然后就可以在粘贴内容进入kindeditor编辑器的时候就直接过滤掉了HTML标签以及超链接了的。很直接!