kindeditor编辑器高级篇:如何做到一键清除HTML格式的同时去掉kindeditor编辑器内全部超链接(a)
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
只回答业务咨询
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
在使用kindeditor编辑器的时候,大多数可能都是从某些网页直接粘贴内容复制到kindeditor编辑器内,这样可能内容就包含很多HTML标签和超链接。为了最快地进行内容编辑往往都使用kindeditor的“一键清除HTML”的功能,但是这个功能默认情况下是不会清除超链接的标签的。这一点往往令很多做编辑的人很是头疼,最后这个光荣的任务就落到了我们程序员的身上。
为了解决在清除HTML标签的同时也清除掉超链接,不得不研究了一番kindeditor的源码。最后将其问题的解决方案归咎到了一键清除HTML的对应plugins/clearhtml/clearHTML.js文件内。通过深入分析得出了这样两个解决方案:
1、修改formatHtml格式化方法
见plugins/clearhtml/clearHTML.js的formatHtml格式化方法如下所示:
1 2 3 4 5 6 7 8 |
html = K.formatHtml(html, { a : ['href', 'target'], embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], table : ['border'], 'td,th' : ['rowspan', 'colspan'], 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] }); |
从格式化方法不难看出它始终保持了a标签的href和target两个属性,所以问题的根本就在这里了的,解决方案就是去掉a标签的一切,修改后的代码如下所示:
1 2 3 4 5 6 7 |
html = K.formatHtml(html, { embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], table : ['border'], 'td,th' : ['rowspan', 'colspan'], 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] }); |
2、直接调用取消超链接的方法
通过查找源码内的方法,可以直接调用去掉超链接的方法,同样修改plugins/clearhtml/clearHTML.js文件内,在
1.
self.addBookmark();
后面追加一句语句:
1.
self.exec(
'unlink'
,
null
);
//去掉编辑器内所有的超链接
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=1095