HTML冗余代码清除

更新时间:2023-10-17 19:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

///

/// 清理Word生成的冗余HTML ///

///

public static string CleanWordHtml(string html) {

StringCollection sc = new StringCollection(); // get rid of unnecessary tag spans (comments and title) sc.Add(@\ sc.Add(@\ // Get rid of classes and styles sc.Add(@\ sc.Add(@\ // Get rid of unnecessary tags

//sc.Add(@\ sc.Add(@\ // Get rid of empty paragraph tags sc.Add(@\

// remove bizarre v: element attached to tag sc.Add(@\ // remove extra lines sc.Add(@\ foreach (string s in sc) {

html = Regex.Replace(html, s, \ }

return html; }

================================================================================

从word粘贴时冗余HTML代码过滤增强版

后台日志编辑默认的编辑器貌似不支持从word粘贴功能,无奈换上了最新的

kindeditor3.5.1,过滤功能很强大。赞!不过还是剩下一些没用的。吃流量,不环保。自己动手增强了一把,做法如下,感兴趣的也可以照此自己改改这一块(改之前务必备份原来的文件!!!):

1、kindeditor.js(3.5.1版)的3236行,“//add start”和“//add end”之间是我加的代码。

1. KE.plugin['wordpaste'] = { 2. click : function(id) { 3. KE.util.selection(id); 4. this.dialog = new KE.dialog({ 5. id : id,

6. cmd : 'wordpaste', 7. file : 'wordpaste.html', 8. width : 450, 9. height : 300, 10. loadingMode : true,

11. title : KE.lang['wordpaste'], 12. yesButton : KE.lang['yes'], 13. noButton : KE.lang['no'] 14. });

15. this.dialog.show(); 16. },

17. exec : function(id) {

18. var dialogDoc = KE.util.getIframeDoc(this.dialog.iframe); 19. var wordIframe = KE.$('wordIframe', dialogDoc);

20. var str = KE.util.getIframeDoc(wordIframe).body.innerHTML; 21. str = str.replace(//ig, \

22. str = str.replace(//ig, \

23. str = str.replace(/]*>(\\n|.)*?<\\/style>/ig, \24. str = str.replace(/]*>(\\n|.)*?<\\/script>/ig, \25. str = str.replace(/]+>(\\n|.)*?<\\/w:[^>]+>/ig, \26. str = str.replace(/(\\n|.)*?<\\/xml>/ig, \27. str = str.replace(/\\r\\n|\\n|\\r/ig, \28. //add start

29. str = str.replace(/font-family:[^\\;\\\30. str = str.replace(/style=\\\31. str = str.replace(//ig,\32. //add end

33. str = KE.util.execGetHtmlHooks(id, str);

34. str = KE.format.getHtml(str, KE.g[id].htmlTags, KE.g[id].urlType); 35. //add start

36. str = str.replace(/font-size:small;/ig,\

37. str = str.replace(/

45. var pat = new RegExp(\

tags

46. var rst,tmp='',idx=0,cnt=0;

47. while ((rst = pat.exec(str)) != null){ 48. if(rst.index>0){

49. tmp += str.substring(idx,rst.index); 50. }

51. if (rst[0]==''){ 52. if(cnt>0){

53. --cnt;

54. idx=rst.index; 55. }else{

56. idx=rst.lastIndex; 57. } 58. }else{

59. if(str.charAt(rst.lastIndex)=='>'){ 60. idx=rst.lastIndex+1; 61. }else{

62. idx=rst.index; 63. ++cnt; 64. } 65. } 66. } 67. str=tmp; 68. //add end

69. KE.util.insertHtml(id, str); 70. this.dialog.hide(); 71. KE.util.focus(id); 72. } 73. }; 复制代码

2、在kindeditor\\skins\\default.css的最后一行加入:

1. .prg{font-size:1em;text-indent:2em;}.s5{font-size:1em;}.ss4{font-size:1.2em;}

.s4{font-size:1.25em;}.ss3{font-size:1.4em;}.s3{font-size:1.5em;}

复制代码

3、content\\templates\\你的模板目录\\main.css里同样加入:

1. .prg{font-size:1em;text-indent:2em;}.s5{font-size:1em;}.ss4{font-size:1.2em;}

.s4{font-size:1.25em;}.ss3{font-size:1.4em;}.s3{font-size:1.5em;}

复制代码

4、使用google closure压缩kindeditor.js

1. java -jar compiler.jar --js admin\\kindeditor\\kindeditor.js --js_output_file

admin\\kindeditor\\kindeditor-min.js

复制代码

完毕。

效果如下: 未过滤版:

1.

0pt;text-indent:17.95pt;mso-char-indent-count:1.71;\style=\宋

体;mso-bidi-font-size:10.5pt;mso-ascii-font-family:'Times New

Roman';mso-hansi-font-family:'Times New Roman';\测试测试测试测试测试测试测试测试测试测试测试测试测试测试测

style=\lang=\宋体;mso-ascii-font-family:'Times New Roman';mso-hansi-font-family:'Times New Roman';\试测试测

体;mso-bidi-font-size:10.5pt;mso-ascii-font-family:'Times New

Roman';mso-hansi-font-family:'Times New Roman';\试测试测试测试

style=\style=\宋

体;mso-bidi-font-size:10.5pt;mso-ascii-font-family:'Times New

Roman';mso-hansi-font-family:'Times New Roman';\测

Roman';mso-hansi-font-family:'Times New Roman';\测

lang=\style=\prefix = o ns = \

复制代码

增强前:

1.

style=\宋体;\测试

style=\宋体;\测试

测试测试测试测试测试测

href=\宋体;\试测试测

复制代码

增强后:

1.

2.

测试测试测试测试测试测试测试测试测试quick测fox jump测

复制代码

lang=\style=\prefix = o ns = \

复制代码

增强前:

1.

style=\宋体;\测试

style=\宋体;\测试

测试测试测试测试测试测

href=\宋体;\试测试测

复制代码

增强后:

1.

2.

测试测试测试测试测试测试测试测试测试quick测fox jump测

复制代码

本文来源:https://www.bwwdw.com/article/90tf.html

Top