MyEditor.js
上传用户:dlqqsh
上传日期:2021-11-13
资源大小:7840k
文件大小:14k
源码类别:

OA系统

开发平台:

Java

  1. if(!iXuEr)
  2. {
  3. var iXuEr = new Object();
  4. }
  5. // 编辑器字体列表
  6. iXuEr.Font_Family = ''
  7. + '宋体='宋体', sans-serif;'
  8. + '黑体='黑体', sans-serif;'
  9. + '楷体='楷体_GB2312', sans-serif;'
  10. + '隶书='隶书', sans-serif;'
  11. + '幼圆='幼圆', sans-serif;'
  12. + '新宋体='新宋体', sans-serif;'
  13. + 'Arial=Arial, Helvetica, sans-serif;'
  14. + 'Courier New='Courier New', Courier, monospace, serif;;'
  15. + 'Geneva=Geneva, Arial, Helvetica, sans-serif;'
  16. + 'Georgia=Georgia, 'Times New Roman', Times, serif;'
  17. + 'Tahoma=Tahoma, '宋体', sans-serif;'
  18. + 'Times New Roman='Times New Roman', Times, serif;'
  19. + 'Verdana=Verdana, Arial, Helvetica, '宋体', sans-serif;';
  20. iXuEr.Public_Valid_Attributes = 'id|class|title|dir|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup|style';;
  21. // 编辑器样式一 应用于站内短信、评论、留言、论坛等
  22. // 编辑器要过滤的标签和属性 以下标签属性根据xhtml1-strict.dtd整理,做了一些改动
  23. iXuEr.Valid_Elements_1 = ''
  24. // + 'html[id|xmlns=http://www.w3.org/1999/xhtml],'
  25. // + 'head[title|id|base|profile],'
  26. // + 'title[id],'
  27. // + 'base[id|href],'
  28. // + 'link[href|charset|hreflang|type|rel|rev|media<screen?handheld?tty?tv?print?projection?braille?speech?all],'
  29. // + 'meta[http-equiv|id|name|content|scheme],'
  30. // + 'style[id|type|media|title|media<screen?handheld?tty?tv?print?projection?braille?speech?all|xml:space],'
  31. // + 'script[type|src|charset|defer=defer],'
  32. // + 'noscript[],'
  33. // + 'base[href],'
  34. // + 'body[onload|onunload|' + iXuEr.Public_Valid_Attributes + '],'
  35. + 'div[' + iXuEr.Public_Valid_Attributes + '],'
  36. + 'p[' + iXuEr.Public_Valid_Attributes + '],'
  37. + 'h1[' + iXuEr.Public_Valid_Attributes + '],'
  38. + 'h2[' + iXuEr.Public_Valid_Attributes + '],'
  39. + 'h3[' + iXuEr.Public_Valid_Attributes + '],'
  40. + 'h4[' + iXuEr.Public_Valid_Attributes + '],'
  41. + 'h5[' + iXuEr.Public_Valid_Attributes + '],'
  42. + 'h6[' + iXuEr.Public_Valid_Attributes + '],'
  43. + 'ul[' + iXuEr.Public_Valid_Attributes + '],'
  44. + 'ol[' + iXuEr.Public_Valid_Attributes + '],'
  45. + 'li[' + iXuEr.Public_Valid_Attributes + '],'
  46. + 'dl[' + iXuEr.Public_Valid_Attributes + '],'
  47. + 'dt[' + iXuEr.Public_Valid_Attributes + '],'
  48. + 'dd[' + iXuEr.Public_Valid_Attributes + '],'
  49. + 'address[' + iXuEr.Public_Valid_Attributes + '],'
  50. + 'hr[' + iXuEr.Public_Valid_Attributes + '],'
  51. + 'pre[' + iXuEr.Public_Valid_Attributes + '],'
  52. + 'blockquote[cite|' + iXuEr.Public_Valid_Attributes + '],'
  53. + 'ins[cite|datetime|' + iXuEr.Public_Valid_Attributes + '],'
  54. + 'del[cite|datetime|' + iXuEr.Public_Valid_Attributes + '],'
  55. + 'a[href|charset|type|hreflang|name|rel|rev|shape|coords|' + iXuEr.Public_Valid_Attributes + '],'
  56. + 'span[' + iXuEr.Public_Valid_Attributes + '],'
  57. + 'bdo[dir|id|class|title|style],'
  58. + 'br[id|class|title|style],'
  59. + 'em[' + iXuEr.Public_Valid_Attributes + '],'
  60. + 'strong[' + iXuEr.Public_Valid_Attributes + '],'
  61. + 'dfn[' + iXuEr.Public_Valid_Attributes + '],'
  62. + 'code[' + iXuEr.Public_Valid_Attributes + '],'
  63. + 'samp[' + iXuEr.Public_Valid_Attributes + '],'
  64. + 'kbd[' + iXuEr.Public_Valid_Attributes + '],'
  65. + 'var[' + iXuEr.Public_Valid_Attributes + '],'
  66. + 'cite[' + iXuEr.Public_Valid_Attributes + '],'
  67. + 'abbr[' + iXuEr.Public_Valid_Attributes + '],'
  68. + 'acronym[' + iXuEr.Public_Valid_Attributes + '],'
  69. + 'q[cite|' + iXuEr.Public_Valid_Attributes + '],'
  70. + 'sub[' + iXuEr.Public_Valid_Attributes + '],'
  71. + 'sup[' + iXuEr.Public_Valid_Attributes + '],'
  72. + 'tt[' + iXuEr.Public_Valid_Attributes + '],'
  73. + 'i[' + iXuEr.Public_Valid_Attributes + '],'
  74. + 'b[' + iXuEr.Public_Valid_Attributes + '],'
  75. + 'big[' + iXuEr.Public_Valid_Attributes + '],'
  76. + 'small[' + iXuEr.Public_Valid_Attributes + '],'
  77. + 'object[declare|classid|codebase|data|type|codetype|archive|standby|height|width|usemap|name|tabindex|' + iXuEr.Public_Valid_Attributes + '],'
  78. + 'param[name|value|id|type|valuetype],'
  79. + 'img[src|alt|longdesc|usemap|ismap|' + iXuEr.Public_Valid_Attributes + ']'
  80. + 'map[' + iXuEr.Public_Valid_Attributes + '],'
  81. + 'area[alt|shape|coords|href|nohref|accesskey|tabindex|' + iXuEr.Public_Valid_Attributes + '],'
  82. + 'form[action|method|enctype|accept|accept-charset|' + iXuEr.Public_Valid_Attributes + '],'
  83. + 'label[for|accesskey|' + iXuEr.Public_Valid_Attributes + '],'
  84. + 'input[name|type<button?checkbox?file?hidden?image?password?radio?reset?submit?text|value|checked|maxlength|src|alt|accept|disabled<disabled|readonly<readonly|accesskey|tabindex|' + iXuEr.Public_Valid_Attributes + '],'
  85. + 'select[name|size|multiple<multiple]|disabled<disabled|tabindex|' + iXuEr.Public_Valid_Attributes + ']'
  86. + 'optgroup[label|disabled<disabled|' + iXuEr.Public_Valid_Attributes + '],'
  87. + 'option[value|selected<selected|' + iXuEr.Public_Valid_Attributes + '],'
  88. + 'textarea[name|rows|cols|disabled<disabled|readonly<readonly|accesskey|tabindex|' + iXuEr.Public_Valid_Attributes + '],'
  89. + 'fieldset[' + iXuEr.Public_Valid_Attributes + '],'
  90. + 'legend[accesskey|' + iXuEr.Public_Valid_Attributes + '],'
  91. + 'button[accesskey|tabindex|disabled<disabled|name|type<button?submit?reset|' + iXuEr.Public_Valid_Attributes + '],'
  92. + 'table[summary|border|cellpadding|cellspacing|frame|rules|width|' + iXuEr.Public_Valid_Attributes + '],'
  93. + 'caption[' + iXuEr.Public_Valid_Attributes + '],'
  94. + 'colgroup[span|align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  95. + 'col[span|align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  96. + 'thead[align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  97. + 'tfoot[align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  98. + 'tbody[align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  99. + 'tr[align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  100. + 'th[colspan|rowspan|abbr|axis|headers|scope|align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  101. + 'td[colspan|rowspan|abbr|axis|headers|scope|align|valign|char|charoff|' + iXuEr.Public_Valid_Attributes + '],'
  102. // 为非IE浏览器增加的标签
  103. + 'embed[src|type|quality|name|autostart|controls|id|allowscriptaccess|pluginspage],';
  104. iXuEr.Editor_Ask = false;
  105. iXuEr.Editor_1 = function (p_Elems, p_RootPath, p_base_url, p_MyStyles) {
  106. tinyMCE.init({
  107. mode : 'exact',
  108. elements : p_Elems,
  109. theme : 'advanced',
  110. language : 'zh_cn_utf8',
  111. docs_language : 'zh_cn_utf8',
  112. //dialog_type : 'modal',
  113. //encoding : 'xml',
  114. relative_urls : true,
  115. remove_script_host : true,
  116. document_base_url : p_base_url,
  117. custom_undo_redo_levels : 100,
  118. valid_elements : iXuEr.Valid_Elements_1,
  119. //extended_valid_elements : iXuEr.Valid_Elements_1,
  120. doctype : '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
  121. plugins : 'advhr, advimage, advlink, contextmenu, emotions, layer, style, paste, searchreplace, media, insertdatetime, preview, table, zoom, fullscreen, xhtmlxtras',
  122. theme_advanced_buttons1 : 'cut,copy,paste,pastetext,pasteword,|,styleselect,formatselect,fontselect,fontsizeselect,help,preview,|,cleanup,code',
  123. theme_advanced_buttons2 : 'bold,italic,sub,sup,|,search,replace,|,forecolor,backcolor,|,styleprops,|,undo,redo,|,link,unlink,anchor,|,advhr,image,media,emotions,charmap,insertdate,inserttime,|,removeformat,visualaid,fullscreen',
  124. theme_advanced_buttons3 : 'justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,outdent,indent,|,cite,abbr,acronym,del,ins,|,tablecontrols',
  125. theme_advanced_toolbar_location : 'top',
  126. theme_advanced_toolbar_align : 'left',
  127. theme_advanced_path_location : 'bottom',
  128. theme_advanced_fonts : iXuEr.Font_Family,
  129. theme_advanced_source_editor_width : '550',
  130. theme_advanced_source_editor_height : '450',
  131. content_css : p_MyStyles,
  132. plugin_insertdate_dateFormat : '%Y-%m-%d',
  133. plugin_insertdate_timeFormat : '%H:%M:%S',
  134. external_link_list_url : p_RootPath + 'iXs_Editor/My_link_list.js',
  135. external_image_list_url : p_RootPath + 'iXs_Editor/My_image_list.js',
  136. flash_external_list_url : p_RootPath + 'iXs_Editor/My_flash_list.js',
  137. theme_advanced_resize_horizontal : true,
  138. theme_advanced_resizing : true,
  139. theme_advanced_resizing_use_cookie : false,
  140. apply_source_formatting : true,
  141. convert_fonts_to_spans : true,
  142. add_form_submit_trigger : false,
  143. fix_list_elements : true,
  144. fix_table_elements : true,
  145. verify_html : true,
  146. ask : iXuEr.Editor_Ask,
  147. font_size_style_values : 'xx-small,x-small,small,medium,large,x-large,xx-large',
  148. theme_advanced_blockformats : 'p,div,address,pre,h1,h2,h3,h4,h5,h6',
  149. inline_styles : true
  150. });
  151. }
  152. // 编辑器样式二 应用于概要内容编辑
  153. iXuEr.Valid_Elements_2 = ''
  154. + 'div[' + iXuEr.Public_Valid_Attributes + '],'
  155. + 'p[' + iXuEr.Public_Valid_Attributes + '],'
  156. + 'h1[' + iXuEr.Public_Valid_Attributes + '],'
  157. + 'h2[' + iXuEr.Public_Valid_Attributes + '],'
  158. + 'h3[' + iXuEr.Public_Valid_Attributes + '],'
  159. + 'h4[' + iXuEr.Public_Valid_Attributes + '],'
  160. + 'h5[' + iXuEr.Public_Valid_Attributes + '],'
  161. + 'h6[' + iXuEr.Public_Valid_Attributes + '],'
  162. + 'ul[' + iXuEr.Public_Valid_Attributes + '],'
  163. + 'ol[' + iXuEr.Public_Valid_Attributes + '],'
  164. + 'li[' + iXuEr.Public_Valid_Attributes + '],'
  165. + 'dl[' + iXuEr.Public_Valid_Attributes + '],'
  166. + 'dt[' + iXuEr.Public_Valid_Attributes + '],'
  167. + 'dd[' + iXuEr.Public_Valid_Attributes + '],'
  168. + 'address[' + iXuEr.Public_Valid_Attributes + '],'
  169. + 'hr[' + iXuEr.Public_Valid_Attributes + '],'
  170. + 'pre[' + iXuEr.Public_Valid_Attributes + '],'
  171. + 'blockquote[cite|' + iXuEr.Public_Valid_Attributes + '],'
  172. + 'ins[cite|datetime|' + iXuEr.Public_Valid_Attributes + '],'
  173. + 'del[cite|datetime|' + iXuEr.Public_Valid_Attributes + '],'
  174. + 'a[href|charset|type|hreflang|name|rel|rev|shape|coords|' + iXuEr.Public_Valid_Attributes + '],'
  175. + 'span[' + iXuEr.Public_Valid_Attributes + '],'
  176. + 'bdo[dir|id|class|title|style],'
  177. + 'br[id|class|title|style],'
  178. + 'em[' + iXuEr.Public_Valid_Attributes + '],'
  179. + 'strong[' + iXuEr.Public_Valid_Attributes + '],'
  180. + 'dfn[' + iXuEr.Public_Valid_Attributes + '],'
  181. + 'code[' + iXuEr.Public_Valid_Attributes + '],'
  182. + 'samp[' + iXuEr.Public_Valid_Attributes + '],'
  183. + 'kbd[' + iXuEr.Public_Valid_Attributes + '],'
  184. + 'var[' + iXuEr.Public_Valid_Attributes + '],'
  185. + 'cite[' + iXuEr.Public_Valid_Attributes + '],'
  186. + 'abbr[' + iXuEr.Public_Valid_Attributes + '],'
  187. + 'acronym[' + iXuEr.Public_Valid_Attributes + '],'
  188. + 'q[cite|' + iXuEr.Public_Valid_Attributes + '],'
  189. + 'sub[' + iXuEr.Public_Valid_Attributes + '],'
  190. + 'sup[' + iXuEr.Public_Valid_Attributes + '],'
  191. + 'tt[' + iXuEr.Public_Valid_Attributes + '],'
  192. + 'i[' + iXuEr.Public_Valid_Attributes + '],'
  193. + 'b[' + iXuEr.Public_Valid_Attributes + '],'
  194. + 'big[' + iXuEr.Public_Valid_Attributes + '],'
  195. + 'small[' + iXuEr.Public_Valid_Attributes + '],'
  196. + 'img[src|alt|longdesc|usemap|ismap|' + iXuEr.Public_Valid_Attributes + ']';
  197. iXuEr.Editor_2 = function (p_Elems, p_RootPath, p_base_url, p_MyStyles) {
  198. tinyMCE.init({
  199. mode : 'exact',
  200. elements : p_Elems,
  201. theme : 'advanced',
  202. language : 'zh_cn_utf8',
  203. docs_language : 'zh_cn_utf8',
  204. relative_urls : true,
  205. remove_script_host : true,
  206. document_base_url : p_base_url,
  207. custom_undo_redo_levels : 100,
  208. valid_elements : iXuEr.Valid_Elements_2,
  209. plugins : 'advimage, contextmenu, emotions, style, insertdatetime, preview',
  210. theme_advanced_buttons1 : 'fontselect,fontsizeselect,styleprops,|,bold,italic,sub,sup,|,forecolor,backcolor,|,emotions,charmap,insertdate,inserttime,|,undo,redo,|,removeformat,|,cleanup,code,preview,help',
  211. theme_advanced_buttons2 : '',
  212. theme_advanced_buttons3 : '',
  213. theme_advanced_toolbar_location : 'top',
  214. theme_advanced_toolbar_align : 'left',
  215. theme_advanced_path_location : 'bottom',
  216. theme_advanced_fonts : iXuEr.Font_Family,
  217. theme_advanced_source_editor_width : '550',
  218. theme_advanced_source_editor_height : '450',
  219. content_css : p_MyStyles,
  220. plugin_insertdate_dateFormat : '%Y-%m-%d',
  221. plugin_insertdate_timeFormat : '%H:%M:%S',
  222. theme_advanced_resize_horizontal : false,
  223. theme_advanced_resizing : true,
  224. theme_advanced_resizing_use_cookie : false,
  225. apply_source_formatting : true,
  226. convert_fonts_to_spans : true,
  227. add_form_submit_trigger : false,
  228. fix_list_elements : true,
  229. fix_table_elements : true,
  230. verify_html : true,
  231. ask : iXuEr.Editor_Ask,
  232. font_size_style_values : 'xx-small,x-small,small,medium,large,x-large,xx-large',
  233. theme_advanced_blockformats : 'p,div,address,pre,h1,h2,h3,h4,h5,h6',
  234. inline_styles : true
  235. });
  236. }
  237. // 编辑器样式三 应用于标题编辑
  238. iXuEr.Valid_Elements_3 = 'span[' + iXuEr.Public_Valid_Attributes + ']';
  239. iXuEr.Editor_3 = function (p_Elems, p_RootPath, p_base_url, p_MyStyles) {
  240. tinyMCE.init({
  241. mode : 'exact',
  242. elements : p_Elems,
  243. theme : 'advanced',
  244. language : 'zh_cn_utf8',
  245. docs_language : 'zh_cn_utf8',
  246. relative_urls : true,
  247. remove_script_host : true,
  248. document_base_url : p_base_url,
  249. custom_undo_redo_levels : 100,
  250. valid_elements : iXuEr.Valid_Elements_3,
  251. plugins : 'contextmenu, style, preview',
  252. theme_advanced_buttons1 : 'styleprops,|,cleanup,code,preview,help',
  253. theme_advanced_buttons2 : '',
  254. theme_advanced_buttons3 : '',
  255. theme_advanced_toolbar_location : 'top',
  256. theme_advanced_toolbar_align : 'left',
  257. theme_advanced_path_location : 'bottom',
  258. theme_advanced_fonts : iXuEr.Font_Family,
  259. theme_advanced_source_editor_width : '550',
  260. theme_advanced_source_editor_height : '450',
  261. content_css : p_MyStyles,
  262. plugin_insertdate_dateFormat : '%Y-%m-%d',
  263. plugin_insertdate_timeFormat : '%H:%M:%S',
  264. theme_advanced_resize_horizontal : false,
  265. theme_advanced_resizing : true,
  266. theme_advanced_resizing_use_cookie : false,
  267. apply_source_formatting : true,
  268. convert_fonts_to_spans : true,
  269. add_form_submit_trigger : false,
  270. fix_list_elements : true,
  271. fix_table_elements : true,
  272. verify_html : true,
  273. inline_styles : true,
  274. onchange_callback : 'myContentFixed'
  275. });
  276. }
  277. function myContentFixed(inst)
  278. {
  279. var html = tinyMCE.getContent();
  280. if(html.toString().match(/((<span>)|(<span style=".+?">)).+?(</span>)/gi))
  281. {
  282. var str = html.replace(/<.+?>/gi, '');
  283. html = html.replace(/((<span>)|(<span style=".+?">)).+?(</span>)/, '$1' + str + '$2');
  284. }
  285. else
  286. {
  287. html = html.replace(/<.+?>/gi, '');
  288. html = '<span>' + html + '</span>';
  289. }
  290. html = html.replace(/<span></span>/gi, '');
  291. html = html.replace(/<span>&nbsp;</span>/gi, '&nbsp;');
  292. tinyMCE.setContent(html);
  293. }