DhtmlEdit.js
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:12k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. var cws_edit; //selectRang
  2. var cws_RangeType;
  3. var cws_selection;
  4. var cws_filterScript = false;
  5. var cws_charset="UTF-8";
  6. var cws_bLoad=false
  7. var cws_pureText=true
  8. var cws_bTextMode=1 //默认为Design模式
  9. //预览
  10. function cws_InitDocument(hiddenid, charset)
  11. {
  12. if (charset!=null)
  13. cws_charset=charset;
  14. //if (cws_bIsIE5){
  15. //var cws_bodyTag="<style type=text/css>.quote{margin:5px 20px;border:1px solid #CCCCCC;padding:5px; background:#F3F3F3 }nbody{boder:0px}.HtmlCode{margin:5px 20px;border:1px solid #CCCCCC;padding:5px;background:#FDFDDF;font-size:14px;font-family:Tahoma;font-style : oblique;line-height : normal ;font-weight:bold;}nbody{boder:0px}</style></head><BODY bgcolor="#FFFFFF" title="Ctrl+Enter直接提交贴子" onkeydown="ctlent();">";
  16. //}else
  17. //{
  18. var cws_bodyTag="<style type=text/css>.quote{margin:5px 20px;border:1px solid #CCCCCC;padding:5px; background:#F3F3F3 }nbody{boder:0px}.HtmlCode{margin:5px 20px;border:1px solid #CCCCCC;padding:5px;background:#FDFDDF;font-size:14px;font-family:Tahoma;font-style : oblique;line-height : normal ;font-weight:bold;}nbody{boder:0px}</style></head><BODY bgcolor="#FFFFFF">";
  19. //}
  20. if (navigator.appVersion.indexOf("MSIE 6.0",0)==-1){
  21. IframeID.document.designMode="On"
  22. }
  23. IframeID.document.open();
  24. IframeID.document.write ('<html><head>');
  25. if (cws_bIsIE5){
  26. IframeID.document.write ('<script language="javascript">');
  27. IframeID.document.write ('var ispost=0;');
  28. IframeID.document.write (' function ctlent(eventobject)');
  29. IframeID.document.write (' {');
  30. IframeID.document.write (' if(event.ctrlKey && window.event.keyCode==13&&ispost==0)');
  31. IframeID.document.write (' {');
  32. IframeID.document.write (' ispost=1;');
  33. IframeID.document.write (' parent.cws_CopyData("'+hiddenid+'"); ');
  34. IframeID.document.write (' parent.document.ob_form.Submit.disabled=true;');
  35. IframeID.document.write (' parent.document.ob_form.Submit2.disabled=true;');
  36. IframeID.document.write (' parent.document.ob_form.submit();');
  37. IframeID.document.write (' }');
  38. IframeID.document.write (' }');
  39. IframeID.document.write ('</script>');
  40. }
  41. IframeID.document.write(cws_bodyTag);
  42. IframeID.document.write("</body>");
  43. IframeID.document.write("</html>");
  44. IframeID.document.close();
  45. IframeID.document.body.contentEditable = "True";
  46. IframeID.document.charset=cws_charset;
  47. cws_bLoad=true;
  48. cws_setStyle();
  49. //IframeID.focus();
  50. }
  51. function cws_setMode(n)
  52. {
  53. cws_setStyle();
  54. var cont;
  55. var cws_Toolbar0=document.getElementById("ExtToolbar0");
  56. var cws_Toolbar1=document.getElementById("ExtToolbar1");
  57. var cws_Toolbar2=document.getElementById("ExtToolbar2");
  58. switch (n){
  59. case 1:
  60. cws_Toolbar0.style.display="";
  61. cws_Toolbar1.style.display="";
  62. cws_Toolbar2.style.display="";
  63. if (document.getElementById("cws_TabHtml").className=="cws_TabOn"){
  64. if (cws_bIsIE5){
  65. cont=IframeID.document.body.innerText;
  66. cont=cws_correctUrl(cont);
  67. if (cws_filterScript)
  68. cont=cws_FilterScript(cont);
  69. IframeID.document.body.innerHTML="<a> </a>"+cont;
  70. //IframeID.document.body.innerHTML=cws_correctUrl(IframeID.document.body.innerHTML);
  71. }else{
  72. var html = IframeID.document.body.ownerDocument.createRange();
  73. html.selectNodeContents(IframeID.document.body);
  74. IframeID.document.body.innerHTML = html.toString();
  75. }
  76. }
  77. break;
  78. case 2:
  79. if (canusehtml=="1" || canusehtml=="3")
  80. {
  81. cws_Toolbar0.style.display="none"; //关闭工具栏
  82. cws_Toolbar1.style.display="none";
  83. cws_Toolbar2.style.display="none";
  84. cws_cleanHtml();
  85. cont=IframeID.document.body.innerHTML;
  86. cont=cws_rCode(IframeID.document.body.innerHTML,"<a> </a>","");
  87. cont=cws_correctUrl(cont);
  88. if (cws_filterScript){cont=cws_FilterScript(cont);}
  89. if (cws_bIsIE5){ //IE
  90. IframeID.document.body.innerText=cont;
  91. }else{ //Nc
  92. var html=document.createTextNode(cont);
  93. IframeID.document.body.innerHTML = "";
  94. IframeID.document.body.appendChild(html);
  95. }
  96. }else{
  97. alert("您不能使用这个功能!")
  98. }
  99. break;
  100. case 3:
  101. cws_Toolbar0.style.display="";
  102. cws_Toolbar1.style.display="none";
  103. cws_Toolbar2.style.display="none";
  104. var mhtml=document.getElementById("cws_TabHtml");
  105. var mdesign=document.getElementById("cws_TabDesign");
  106. if (mhtml.className=="cws_TabOn")
  107. {
  108. if (cws_bIsIE5){
  109. cont=IframeID.document.body.innerText;
  110. cont=cws_correctUrl(cont);
  111. if (cws_filterScript)
  112. cont=cws_FilterScript(cont);
  113. IframeID.document.body.innerHTML=cont;
  114. }else{
  115. var html = IframeID.document.body.ownerDocument.createRange();
  116. html.selectNodeContents(IframeID.document.body);
  117. IframeID.document.body.innerHTML = html.toString();
  118. }
  119. }
  120. break;
  121. }
  122. cws_setTab(n);
  123. cws_bTextMode=n
  124. }
  125. function cws_setTab(n)
  126. {
  127. //html和design按钮的样式更改
  128. var mhtml=document.getElementById("cws_TabHtml");
  129. var mdesign=document.getElementById("cws_TabDesign");
  130. if (n==1)
  131. {
  132. mhtml.className="cws_TabOff";
  133. mdesign.className="cws_TabOn";
  134. }
  135. else if (n==2)
  136. {
  137. mhtml.className="cws_TabOn";
  138. mdesign.className="cws_TabOff";
  139. }
  140. else if (n==3)
  141. {
  142. mhtml.className="cws_TabOff";
  143. mdesign.className="cws_TabOff";
  144. }
  145. }
  146. function cws_setStyle()
  147. {
  148. //var bs = IframeID.document.body.runtimeStyle;
  149. var bs = IframeID.document.body.style;
  150. //根据mode设置iframe样式表
  151. if (cws_bTextMode==2) {
  152. bs.fontFamily="Arial";
  153. bs.fontSize="10pt";
  154. }else{
  155. bs.fontFamily="Arial";
  156. bs.fontSize="10.5pt";
  157. }
  158. bs.scrollbar3dLightColor= '#D4D0C8';
  159. bs.scrollbarArrowColor= '#000000';
  160. bs.scrollbarBaseColor= '#D4D0C8';
  161. bs.scrollbarDarkShadowColor= '#D4D0C8';
  162. bs.scrollbarFaceColor= '#D4D0C8';
  163. bs.scrollbarHighlightColor= '#808080';
  164. bs.scrollbarShadowColor= '#808080';
  165. bs.scrollbarTrackColor= '#D4D0C8';
  166. bs.border='0';
  167. }
  168. function cws_validateMode()
  169. {
  170. if (cws_bTextMode!=2) return true;
  171. alert("请取消“查看HTML源代码”选项再使用系统编辑功能或者提交!");
  172. IframeID.focus();
  173. return false;
  174. }
  175. function cws_CleanCode()
  176. {
  177. var editor=IframeID;
  178. editor.focus();
  179. if (cws_bIsIE5){
  180. // 0bject based cleaning
  181. var body = editor.document.body;
  182. for (var index = 0; index < body.all.length; index++) {
  183. tag = body.all[index];
  184. //*if (tag.Attribute["className"].indexOf("mso") > -1)
  185. tag.removeAttribute("className","",0);
  186. tag.removeAttribute("style","",0);
  187. }
  188. // Regex based cleaning
  189. var html = editor.document.body.innerHTML;
  190. html = html.replace(/<p>/gi,"[$p]");
  191. html = html.replace(/</p>/gi,"[$/p]");
  192. html = html.replace(/<br>/gi,"[$br]");
  193. html = html.replace(/<[^>]*>/g,"");        ///过滤其它所有"<...>"标签
  194. html = html.replace(/[$p]/gi,"<p>");
  195. html = html.replace(/[$/p]/gi,"</p>");
  196. html = html.replace(/[$br]/gi,"<br>");
  197. editor.document.body.innerHTML = html;
  198. }else
  199. {
  200. var html = IframeID.document.body.ownerDocument.createRange();
  201. html.selectNodeContents(IframeID.document.body);
  202. IframeID.document.body.innerHTML = html.toString();
  203. }
  204. }
  205. function cws_ChekEmptyCode(html)
  206. {
  207. html = html.replace(/<[^>]*>/g,"");        ///过滤其它所有"<...>"标签
  208. html = html.replace(/&nbsp;/gi, "");
  209. html = html.replace(/o:/gi, "");
  210. html = html.replace(/s/gi, "");
  211. return html;
  212. }
  213. var colour
  214. function FormatText(command, option)
  215. {
  216. var codewrite
  217. if (cws_bIsIE5){
  218. if (option=="removeFormat"){
  219. command=option;
  220. option=null;}
  221. IframeID.focus();
  222.    IframeID.document.execCommand(command, false, option);
  223. cws_pureText = false;
  224. IframeID.focus();
  225. }else{
  226. if ((command == 'forecolor') || (command == 'backcolor')) {
  227. parent.command = command;
  228. buttonElement = document.getElementById(command);
  229. IframeID.focus();
  230. document.getElementById("colourPalette").style.left = getOffsetLeft(buttonElement) + "px";
  231. document.getElementById("colourPalette").style.top = (getOffsetTop(buttonElement) + buttonElement.offsetHeight) + "px";
  232. if (document.getElementById("colourPalette").style.visibility=="hidden")
  233. {document.getElementById("colourPalette").style.visibility="visible";
  234. }else {
  235. document.getElementById("colourPalette").style.visibility="hidden";
  236. }
  237. //get current selected range
  238. var sel = IframeID.document.selection; 
  239. if (sel != null) {
  240. colour = sel.createRange();
  241. }
  242. }
  243. else{
  244. IframeID.focus();
  245.    IframeID.document.execCommand(command, false, option);
  246. cws_pureText = false;
  247. IframeID.focus();
  248. }
  249. }
  250. }
  251. function setColor(color)
  252. {
  253. IframeID.focus();
  254. IframeID.document.execCommand(parent.command, false, color);
  255. IframeID.focus();
  256. document.getElementById("colourPalette").style.visibility="hidden";
  257. }
  258. //----------------
  259. function cws_FilterScript(content)
  260. {
  261. content = cws_rCode(content, 'javascript:', '<b>javascript</b> :');
  262. var RegExp = /<script[^>]*>(.*)</script>/gi;
  263. content = content.replace(RegExp, "<div class=HtmlCode>&lt;!-- Script 代码开始 --&gt;<br>$1<br>&lt;!-- Script 代码结束 --&gt;</div>");
  264. RegExp = /<P>&nbsp;</P>/gi;
  265. content = content.replace(RegExp, "");
  266. return content;
  267. }
  268. function cws_rCode(s,a,b,i){
  269. //s原字串,a要换掉pattern,b换成字串,i是否区分大小写
  270. a = a.replace("?","\?");
  271. if (i==null)
  272. {
  273. var r = new RegExp(a,"gi");
  274. }else if (i) {
  275. var r = new RegExp(a,"g");
  276. }
  277. else{
  278. var r = new RegExp(a,"gi");
  279. }
  280. return s.replace(r,b); 
  281. }
  282. // 回复可见
  283. function replyCanSee(){
  284. var fontbegin = "[REPLY]";
  285. var fontend = "[/REPLY]";
  286. if ((IframeID.document.selection)&&(IframeID.document.selection.type == "Text")) {
  287. var range = IframeID.document.selection.createRange();
  288. var ch_text = range.text;
  289. range.text = fontbegin + ch_text + fontend;
  290. }
  291. else {
  292. IframeID.document.body.innerHTML=fontbegin+IframeID.document.body.innerHTML+fontend;
  293. }
  294. }
  295. function experienceCanSee() {
  296. var FoundErrors = '';
  297. var enterpoints = prompt(text_enter_points,"1000");
  298. if (!enterpoints) {
  299. FoundErrors += "n" + error_no_points;
  300. }
  301. if (FoundErrors) {
  302. alert("错误!"+FoundErrors);
  303. return;
  304. }
  305. var fontbegin = "[HIDE_EXP="+enterpoints+"]";
  306. var fontend = "[/HIDE_EXP]";
  307. if ((IframeID.document.selection)&&(IframeID.document.selection.type == "Text")) {
  308. var range = IframeID.document.selection.createRange();
  309. var ch_text = range.text;
  310. range.text = fontbegin + ch_text + fontend;
  311. }
  312. else {
  313. IframeID.document.body.innerHTML=fontbegin+IframeID.document.body.innerHTML+fontend;
  314. }
  315. }
  316. function usePoint() {
  317. var ary = showModalDialog('point_sel.jsp',window.self,'dialogWidth:526px;dialogHeight:435px;status:no;help:no;');
  318. if (ary==null)
  319. return;
  320. var fontbegin = "[point=" + ary[0] + "," + ary[1] + "]";
  321. var fontend = "[/point]";
  322. if ((IframeID.document.selection)&&(IframeID.document.selection.type == "Text")) {
  323. var range = IframeID.document.selection.createRange();
  324. var ch_text = range.text;
  325. range.text = fontbegin + ch_text + fontend;
  326. }
  327. else {
  328. IframeID.document.body.innerHTML=fontbegin+IframeID.document.body.innerHTML+fontend;
  329. }
  330. }
  331. function payme() {
  332. var ary = showModalDialog('point_sel.jsp',window.self,'dialogWidth:526px;dialogHeight:435px;status:no;help:no;');
  333. if (ary==null)
  334. return;
  335. var fontbegin = "[payme=" + ary[0] + "," + ary[1] + "]";
  336. var fontend = "[/payme]";
  337. if ((IframeID.document.selection)&&(IframeID.document.selection.type == "Text")) {
  338. var range = IframeID.document.selection.createRange();
  339. var ch_text = range.text;
  340. range.text = fontbegin + ch_text + fontend;
  341. }
  342. else {
  343. IframeID.document.body.innerHTML=fontbegin+IframeID.document.body.innerHTML+fontend;
  344. }
  345. }
  346. //cws_InitDocument("Body","GB2312");