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

Jsp/Servlet

开发平台:

Java

  1. //if (cws_bLoad==false)
  2. //{
  3. //cws_InitDocument("Body","GB2312");
  4. //}
  5. if (cws_bIsNC){
  6. document.write('<iframe width="260" height="165" id="colourPalette" src="' + editorRootPath + 'images/nc_selcolor.htm" style="visibility:hidden; position: absolute; left: 0px; top: 0px;" frameborder="0" scrolling="no" ></iframe>');
  7. }
  8. if (PostType == 0)
  9. {
  10. cws_setMode(3);
  11. document.getElementById("cws_TabDesign").style.display='none';
  12. document.getElementById("cws_TabDesign").style.display='none';
  13. //onpaste
  14. //document.selection.createRange().text
  15. //(window.clipboardData.getData("Text")
  16. }
  17. //数据传递
  18. function cws_CopyData(hiddenid)
  19. {
  20. //document.Dvform.Submit.disabled=true;
  21. //document.Dvform.Submit2.disabled=true;
  22. if (PostType == 0 && cws_bTextMode == 3)
  23. {
  24. cws_PasteData()
  25. }
  26. d = IframeID.document;
  27. if (cws_bTextMode == 2)
  28. {
  29. cont = d.body.innerText;
  30. }else{
  31. cont = d.body.innerHTML;  
  32. }
  33. var ChekEmptyCode = cws_ChekEmptyCode(cont);
  34. if (ChekEmptyCode == '' || ChekEmptyCode == null)
  35. {
  36. cont='';
  37. }
  38. else{
  39. cont = cws_correctUrl(cont);
  40. if (cws_filterScript)
  41. cont=cws_FilterScript(cont);
  42. }
  43. document.getElementById(hiddenid).value = cont;
  44. }
  45. function cws_PasteData()
  46. {
  47. var regExp;
  48. cont = IframeID.document.body.innerHTML;
  49. regExp = /<[s|t][a-z]([^>]*)>/ig
  50. cont = cont.replace(regExp, '');
  51. regExp = /</[s|t][a-z]([^>]*)>/ig
  52. cont = cont.replace(regExp, '');
  53. IframeID.document.body.innerHTML = cont
  54. }
  55. //-------------------------------------
  56. function ctlent(eventobject)
  57. {
  58. if(event.ctrlKey && event.keyCode==13)
  59. {
  60. this.document.Dvform.submit();
  61. }
  62. }
  63. function putEmot(thenNo)
  64. {
  65. var ToAdd = '['+thenNo+']';
  66. IframeID.document.body.innerHTML+=ToAdd;
  67. IframeID.focus();
  68. }
  69. function gopreview()
  70. {
  71. document.preview.Dvtitle.value=document.Dvform.topic.value;
  72. document.preview.theBody.value=IframeID.document.body.innerHTML;
  73. var popupWin = window.open('', 'preview_page', 'scrollbars=yes,width=750,height=450');
  74. document.preview.submit()
  75. }
  76. //--------------------------------------------------------------------------------
  77. function cws_foreColor()
  78. {
  79. if (!cws_validateMode()) return;
  80. if (cws_bIsIE5){
  81. var arr = showModalDialog(editorRootPath + "/editor_full/images/selcolor.jsp", "", "dialogWidth:18.5em; dialogHeight:17.5em; status:0; help:0");
  82. if (arr != null) FormatText('forecolor', arr);
  83. else IframeID.focus();
  84. }else
  85. {
  86. FormatText('forecolor', '');
  87. //var arr = openEditScript('images/nc_selcolor.htm',250,100)}
  88. }
  89. }
  90. function cws_backColor()
  91. {
  92. if (!cws_validateMode()) return;
  93. if (cws_bIsIE5)
  94. {
  95. var arr = showModalDialog(editorRootPath + "/editor_full/images/selcolor.jsp", "", "dialogWidth:18.5em; dialogHeight:17.5em; status:0; help:0");
  96. if (arr != null) FormatText('backcolor', arr);
  97. else IframeID.focus();
  98. }else
  99. {
  100. FormatText('backcolor', '');
  101. }
  102. }
  103. function cws_correctUrl(cont)
  104. {
  105. var regExp;
  106. var url=location.href.substring(0,location.href.lastIndexOf("/")+1);
  107. cont=cws_rCode(cont,location.href+"#","#");
  108. cont=cws_rCode(cont,url,"");
  109. cont=cws_rCode(cont,"<a> </a>","");
  110. //regExp = /<a.*href="(.*)"[^>]*>/gi;
  111. //将连接加上blank标记
  112. //regExp = /<(a[^>]*) href=([^ |>]*)([^>]*)/gi
  113. //cont = cont.replace(regExp, "<$1 href=$2 target="_blank" ") ;
  114. //regExp = /<([^>]*)/gi //转换为小写htm
  115. //cont = cont.replace(regExp, function($1){return $1.toLowerCase()})
  116. return cont;
  117. }
  118. function cws_cleanHtml()
  119. {
  120. if (cws_bIsIE5){
  121. var fonts = IframeID.document.body.all.tags("FONT");
  122. }else{
  123. var fonts = IframeID.document.getElementsByTagName("FONT");
  124. }
  125. var curr;
  126. for (var i = fonts.length - 1; i >= 0; i--) {
  127. curr = fonts[i];
  128. if (curr.style.backgroundColor == "#ffffff") curr.outerHTML = curr.innerHTML;
  129. }
  130. }
  131. function cws_getPureHtml()
  132. {
  133. var str = "";
  134. //var paras = IframeID.document.body.all.tags("P");
  135. //var paras = IframeID.document.getElementsByTagName("p");
  136. //if (paras.length > 0){
  137.   //for (var i=paras.length-1; i >= 0; i--) str= paras[i].innerHTML + "n" + str;
  138. //} else {
  139. str = IframeID.document.body.innerHTML;
  140. //}
  141. str=cws_correctUrl(str);
  142. return str;
  143. }
  144. function FormatUrl(html)
  145. {
  146. var regExp = /<a.*href="(.*)"[^>]*>/gi;
  147. html = html.replace(regExp,"<a href=$1 target="_blank" >")
  148.   return html;
  149. }
  150. function cws_getEl(sTag,start)
  151. {
  152. while ((start!=null) && (start.tagName!=sTag)) start = start.parentElement;
  153. return start;
  154. }
  155. //选择内容替换文本
  156. function cws_InsertSymbol(str1)
  157. {
  158. IframeID.focus();
  159. if (cws_bIsIE5) cws_selectRange();
  160. cws_edit.pasteHTML(str1);
  161. }
  162. //选择事件
  163. function cws_selectRange(){
  164. cws_selection = IframeID.document.selection;
  165. cws_edit = cws_selection.createRange();
  166. cws_RangeType = cws_selection.type;
  167. }
  168. //应用html
  169. function cws_specialtype(Mark1, Mark2){
  170. var strHTML;
  171. if (cws_bIsIE5){
  172. cws_selectRange();
  173. if (cws_RangeType == "Text"){
  174. if (Mark2==null)
  175. {
  176. strHTML = "<" + Mark1 + ">" + cws_edit.htmlText + "</" + Mark1 + ">"; 
  177. }else{
  178. strHTML = Mark1 + cws_edit.htmlText +  Mark2; 
  179. }
  180. cws_edit.pasteHTML(strHTML);
  181. IframeID.focus();
  182. cws_edit.select();
  183. }
  184. else{window.alert("请选择相应内容!")}
  185. }
  186. else{
  187. if (Mark2==null)
  188. {
  189. strHTML = "<" + Mark1 + ">" + IframeID.document.body.innerHTML + "</" + Mark1 + ">"; 
  190. }else{
  191. strHTML = Mark1 + IframeID.document.body.innerHTML +  Mark2; 
  192. }
  193. IframeID.document.body.innerHTML=strHTML
  194. IframeID.focus();
  195. }
  196. }
  197. // 修改编辑栏高度
  198. function cws_Size(num)
  199. {
  200. var obj=document.getElementById("cws_edit");
  201. //if (parseInt(obj.style.height)+num>=300) {
  202. //alert(obj.style.height)
  203. //obj.style.height = (parseInt(obj.style.height) + num);
  204. if (num>0){
  205. obj.style.height=num+"px";
  206. obj.style.width="100%";
  207. }
  208. else{
  209. obj.style.height="";
  210. //alert(-num+"px");
  211. obj.style.width=-num+"px";
  212. }
  213. }
  214. function cws_getText()
  215. {
  216. if (cws_bTextMode==2)
  217. return IframeID.document.body.innerText;
  218. else
  219. {
  220. cws_cleanHtml();
  221. return IframeID.document.body.innerHTML;
  222. }
  223. }
  224. function cws_putText(v)
  225. {
  226. if (cws_bTextMode==2)
  227. IframeID.document.body.innerText = v;
  228. else
  229. IframeID.document.body.innerHTML = v;
  230. }
  231. function cws_doSelectClick(str, el)
  232. {
  233. var Index = el.selectedIndex;
  234. if (Index != 0){
  235. el.selectedIndex = 0;
  236. FormatText(str,el.options[Index].value);
  237. }
  238. }
  239. //查找配对字符出现次数,没有结果为0
  240. function TabCheck(word,str){
  241. var tp=0
  242. chktp=str.search(word);
  243. if (chktp!=-1)
  244. {
  245. eval("var tp=""+str+"".match("+word+").length")
  246. }
  247. return tp;
  248. }
  249. function cws_help()
  250. {
  251. showModalDialog(editorRootPath + "/editor_full/images/help.html", "", "dialogWidth:13.5em; dialogHeight:12.5em; status:0; help:0");
  252. }
  253. function openEditScript(url, width, height){
  254. var Win = window.open(url,"openEditScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,status=no' );
  255. }
  256. //广告标记
  257. function cws_View()
  258. {
  259. if (cws_bTextMode==2) {
  260. cont=IframeID.document.body.innerText;
  261. } else {
  262. cont=IframeID.document.body.innerHTML;
  263. }
  264. cont=cws_correctUrl(cont);
  265. bodyTag="<html><head><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" >";
  266. if (cws_filterScript)
  267. cont=cws_FilterScript(cont);
  268. cont=cws_rCode(cont,"\[dvnews_ad]","<img src='images/images/pic_ad.jpg' vspace=10 hspace=10 align=left border=1 title='Advertising'>");
  269. cont=cws_rCode(cont,"\[dvnews_page]","<br><br><hr size=2 width=95% align=left>&nbsp; <font color=red face='Tahoma,Arail' size=2><b>Next Page ...</b></font><br><hr size=2 width=95% align=left>");
  270. preWin=window.open('preview','','left=0,top=0,width=550,height=400,resizable=1,scrollbars=1, status=1, toolbar=1, menubar=0');
  271. preWin.document.open();
  272. preWin.document.write(bodyTag);
  273. preWin.document.write(cont);
  274. preWin.document.close();
  275. preWin.document.title="Preview";
  276. preWin.document.charset=cws_charset;
  277. }
  278. //Colour pallete top offset
  279. function getOffsetTop(elm) {
  280. var mOffsetTop = elm.offsetTop;
  281. var mOffsetParent = elm.offsetParent;
  282. while(mOffsetParent){
  283. mOffsetTop += mOffsetParent.offsetTop;
  284. mOffsetParent = mOffsetParent.offsetParent;
  285. }
  286. return mOffsetTop;
  287. }
  288. //Colour pallete left offset
  289. function getOffsetLeft(elm) {
  290. var mOffsetLeft = elm.offsetLeft;
  291. var mOffsetParent = elm.offsetParent;
  292. while(mOffsetParent) {
  293. mOffsetLeft += mOffsetParent.offsetLeft;
  294. mOffsetParent = mOffsetParent.offsetParent;
  295. }
  296. return mOffsetLeft;
  297. }
  298. //Function to hide colour pallete
  299. function hideColourPallete() {
  300. document.getElementById("colourPalette").style.visibility="hidden";
  301. }
  302. //------------------------------------------------------
  303. function OpenSmiley()
  304. {
  305. var arr = showModalDialog(editorRootPath + "/editor_full/images/smiley.htm", "", "dialogWidth:60em; dialogHeight:15.5em; status:0; help:0");
  306. if (arr != null){
  307. var ss;
  308. ss=arr.split("*")
  309. path=ss[0];
  310. ubbstring=ss[1];
  311. IframeID.document.body.innerHTML+=ubbstring;
  312. }
  313. else IframeID.focus();
  314. }
  315. function cws_forswf()
  316. {
  317. var arr = showModalDialog(editorRootPath + "/editor_full/images/swf.jsp", "", "dialogWidth:30em; dialogHeight:10em; status:0; help:0");
  318. if (arr != null){
  319. var ss;
  320. ss=arr.split("*")
  321. path=ss[0];
  322. row=ss[1];
  323. col=ss[2];
  324. var string;
  325. string="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'  codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' width="+row+" height="+col+"><param name=movie value="+path+"><param name=quality value=high><embed src="+path+" pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width="+row+" height="+col+"></embed></object>"
  326. //string="[flash="+row+","+col+"]"+path+"[/flash]"
  327. IframeID.document.body.innerHTML+=string;
  328. }
  329. else IframeID.focus();
  330. }
  331. function cws_forwmv()
  332. {
  333. var arr = showModalDialog(editorRootPath + "/editor_full/images/wmv.jsp", "", "dialogWidth:30em; dialogHeight:14em; status:0; help:0");
  334. if (arr != null){
  335. var ss;
  336. ss=arr.split("*")
  337. path=ss[0];
  338. autostart=ss[1];
  339. width=ss[2];
  340. height=ss[3];
  341. ran=rand();
  342. var string;
  343. var ubbstring;
  344. string="<object align=center classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 hspace=5 vspace=5 width="+ width +" height="+ height +"><param name=Filename value="+ path +"><param name=ShowStatusBar value=1><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src="+ path +"  width="+ width +" height="+ height +"></embed></object>";
  345. string="<EMBED id=MediaPlayer"+ran+" src="+ path +" width="+ width +" height="+ height +" autostart=""+ autostart +"" loop="false"></EMBED><p></p>";
  346. //string="[MP="+ width +","+ height +","+ autostart +"]"+ path +"[/MP]";
  347. IframeID.document.body.innerHTML+=string;
  348. }
  349. else IframeID.focus();
  350. }
  351. function rand() {
  352. return parseInt((1000)*Math.random()+1);
  353. }
  354. function cws_forrm()
  355. {
  356. var arr = showModalDialog(editorRootPath + "/editor_full/images/rm.jsp", "", "dialogWidth:30em; dialogHeight:14em; status:0; help:0");
  357. if (arr != null)
  358. {
  359. var ss;
  360. ss = arr.split("*")
  361. path = ss[0];
  362. row = ss[1];
  363. col = ss[2];
  364. autostart = ss[3];
  365. ran = rand();
  366. var string;
  367. string="<object classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' width='"+row+"' height='"+col+"'><param name='CONTROLS' value='ImageWindow'><param name='CONSOLE' value='Clip'><param name='AUTOSTART' value='"+ autostart +"'><param name=src value="+path+"></object><br><object classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'  width="+row+" height=32><param name='CONTROLS' value='ControlPanel,StatusBar'><param name='CONSOLE' value='Clip'></object>";
  368. //string = "[RM="+ row +","+ col +","+ autostart +"]"+ path +"[/RM]";
  369. IframeID.document.body.innerHTML+=string;
  370. }
  371. else IframeID.focus();
  372. }
  373. //图片与链接事件
  374. function cws_UserDialog(what)
  375. {
  376. if (!cws_validateMode()) return;
  377. IframeID.focus();
  378. if (what == "CreateLink") {
  379. if (cws_bIsNC)
  380. {
  381. insertLink = prompt("请填写超级链接地址信息:", "http://");
  382. if ((insertLink != null) && (insertLink != "") && (insertLink != "undefined")) {
  383. IframeID.document.execCommand('CreateLink', false, insertLink);
  384. }else{
  385. IframeID.document.execCommand('unlink', false, null);
  386. }
  387. }
  388. else {
  389. IframeID.document.execCommand(what, true, null);
  390. }
  391. }
  392. //去掉添加图片时的src="file://
  393. if(what == "InsertImage"){
  394. imagePath = prompt('请填写图片链接地址信息:', 'http://');
  395. if ((imagePath != null) && (imagePath != "")) {
  396. IframeID.document.execCommand('InsertImage', false, imagePath);
  397. }
  398. IframeID.document.body.innerHTML = (IframeID.document.body.innerHTML).replace("src="file://","src="");
  399. }
  400. cws_pureText = false;
  401. IframeID.focus();
  402. }
  403. //--------------------
  404. function cws_GetRangeReference(editor)
  405. {
  406. editor.focus();
  407. var objReference = null;
  408. var RangeType = editor.document.selection.type;
  409. var selectedRange = editor.document.selection.createRange();
  410. switch(RangeType)
  411. {
  412. case 'Control' :
  413. if (selectedRange.length > 0 ) 
  414. {
  415. objReference = selectedRange.item(0);
  416. }
  417. break;
  418. case 'None' :
  419. objReference = selectedRange.parentElement();
  420. break;
  421. case 'Text' :
  422. objReference = selectedRange.parentElement();
  423. break;
  424. }
  425. return objReference
  426. }
  427. function cws_CheckTag(item,tagName)
  428. {
  429. if (item.tagName.search(tagName)!= -1)
  430. {
  431. return item;
  432. }
  433. if (item.tagName == 'BODY')
  434. {
  435. return false;
  436. }
  437. item=item.parentElement;
  438. return cws_CheckTag(item,tagName);
  439. }
  440. function cws_code()
  441. {
  442. cws_specialtype("<div class=HtmlCode style='cursor: pointer'; title='点击运行该代码!' onclick="preWin=window.open('','','');preWin.document.open();preWin.document.write(this.innerText);preWin.document.close();">","</div>");
  443. //cws_specialtype("<div class=HtmlCode>","</div>");
  444. }
  445. function cws_quote()
  446. {
  447. cws_specialtype("<div style='margin:5px 20px;border:1px solid #CCCCCC;padding:5px; background:#F3F3F3'>","</div>");
  448. }
  449. function cws_replace()
  450. {
  451. var arr = showModalDialog(editorRootPath + "/editor_full/images/replace.jsp", "", "dialogWidth:16.5em; dialogHeight:13em; status:0; help:0");
  452. if (arr != null){
  453. var ss;
  454. ss = arr.split("*")
  455. a = ss[0];
  456. b = ss[1];
  457. i = ss[2];
  458. con = IframeID.document.body.innerHTML;
  459. if (i == 1)
  460. {
  461. con = cws_rCode(con,a,b,true);
  462. }else{
  463. con = cws_rCode(con,a,b);
  464. }
  465. IframeID.document.body.innerHTML = con;
  466. }
  467. else IframeID.focus();
  468. }
  469. function insertSpecialChar()
  470. {
  471. var arr = showModalDialog(editorRootPath + "/editor_full/images/specialchar.jsp", "","dialogWidth:25em; dialogHeight:15em; status:0; help:0");
  472. if (arr != null) cws_InsertSymbol(arr);
  473. IframeID.focus() ;
  474. }
  475. function doZoom( sizeCombo ) 
  476. {
  477. if (sizeCombo.value != null || sizeCombo.value != "")
  478. if (cws_bIsIE5){
  479. var z = IframeID.document.body.runtimeStyle;}
  480. else{
  481. var z = IframeID.document.body.style;
  482. }
  483. z.zoom = sizeCombo.value + "%" ;
  484. }
  485. //--------------------
  486. function cws_fortable()
  487. {
  488. if (!cws_validateMode()) return;
  489. IframeID.focus();
  490. var arr = showModalDialog(editorRootPath + "/editor_full/images/table.jsp", window, "dialogWidth:22em; dialogHeight:18.5em; status:0; help:0;scroll:yes;");
  491. if (arr)
  492. {
  493. IframeID.document.body.innerHTML+=arr;
  494. }
  495. IframeID.focus();
  496. }
  497. function cws_InsertRow()
  498. {
  499. editor = IframeID;
  500. objReference = cws_GetRangeReference(editor);
  501. objReference = cws_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
  502. switch(objReference.tagName)
  503. {
  504. case 'TABLE' :
  505. var newTable = objReference.cloneNode(true);
  506. var newRow = newTable.insertRow();
  507. for(x = 0; x<newTable.rows[0].cells.length; x++)
  508. {
  509. var newCell = newRow.insertCell();
  510. }
  511. objReference.outerHTML = newTable.outerHTML;
  512. break;
  513. case 'TBODY' :
  514. var newTable = objReference.cloneNode(true);
  515. var newRow = newTable.insertRow();
  516. for(x = 0; x<newTable.rows[0].cells.length; x++)
  517. {
  518. var newCell = newRow.insertCell();
  519. }
  520. objReference.outerHTML=newTable.outerHTML;
  521. break;
  522. case 'TR' :
  523. var rowIndex = objReference.rowIndex;
  524. var parentTable = objReference.parentElement.parentElement;
  525. var newTable = parentTable.cloneNode(true);
  526. var newRow = newTable.insertRow(rowIndex+1);
  527. for(x = 0; x< newTable.rows[0].cells.length; x++)
  528. {
  529. var newCell = newRow.insertCell();
  530. }
  531. parentTable.outerHTML = newTable.outerHTML;
  532. break;
  533. case 'TD' :
  534. var parentRow = objReference.parentElement;
  535. var rowIndex = parentRow.rowIndex;
  536. var cellIndex = objReference.cellIndex;
  537. var parentTable = objReference.parentElement.parentElement.parentElement;
  538. var newTable = parentTable.cloneNode(true);
  539. var newRow = newTable.insertRow(rowIndex+1);
  540. for(x = 0; x< newTable.rows[0].cells.length; x++)
  541. {
  542. var newCell = newRow.insertCell();
  543. if (x == cellIndex)newCell.id='ura';
  544. }
  545. parentTable.outerHTML = newTable.outerHTML;
  546. var r = editor.document.body.createTextRange();
  547. var item = editor.document.getElementById('ura');
  548. item.id = '';
  549. r.moveToElementText(item);
  550. r.moveStart('character',r.text.length);
  551. r.select();
  552. break;
  553. default :
  554. return;
  555. }
  556. }
  557. function cws_DeleteRow()
  558. {
  559. editor=IframeID;
  560. objReference=cws_GetRangeReference(editor);
  561. objReference=cws_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
  562. switch(objReference.tagName)
  563. {
  564. case 'TR' :var rowIndex = objReference.rowIndex;//Get rowIndex
  565. var parentTable=objReference.parentElement.parentElement;
  566. parentTable.deleteRow(rowIndex);
  567. break;
  568. case 'TD' :var cellIndex=objReference.cellIndex;
  569. var parentRow=objReference.parentElement;//Get Parent Row
  570. var rowIndex = parentRow.rowIndex;//Get rowIndex
  571. var parentTable=objReference.parentElement.parentElement.parentElement;
  572. parentTable.deleteRow(rowIndex);
  573. if (rowIndex>=parentTable.rows.length)
  574. {
  575. rowIndex=parentTable.rows.length-1;
  576. }
  577. if (rowIndex>=0)
  578. {
  579. var r = editor.document.body.createTextRange();
  580. r.moveToElementText(parentTable.rows[rowIndex].cells[cellIndex]);
  581. r.moveStart('character',r.text.length);
  582. r.select();
  583. }
  584. else
  585. {
  586. parentTable.removeNode(true);
  587. }
  588. break;
  589. default :return;
  590. }
  591. }
  592. function cws_InsertColumn()
  593. {
  594. editor = IframeID;
  595. objReference= cws_GetRangeReference(editor);
  596. objReference=cws_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
  597. switch(objReference.tagName)
  598. {
  599. case 'TABLE' :// IF a table is selected, it adds a new column on the right hand side of the table.
  600. var newTable=objReference.cloneNode(true);
  601. for(x=0; x<newTable.rows.length; x++)
  602. {
  603. var newCell = newTable.rows[x].insertCell();
  604. }
  605. newCell.focus();
  606. objReference.outerHTML=newTable.outerHTML;
  607. break;
  608. case 'TBODY' :// IF a table is selected, it adds a new column on the right hand side of the table.
  609. var newTable=objReference.cloneNode(true);
  610. for(x=0; x<newTable.rows.length; x++)
  611. {
  612. var newCell = newTable.rows[x].insertCell();
  613. }
  614. objReference.outerHTML=newTable.outerHTML;
  615. break;
  616. case 'TR' :// IF a table is selected, it adds a new column on the right hand side of the table.
  617. objReference=objReference.parentElement.parentElement;
  618. var newTable=objReference.cloneNode(true);
  619. for(x=0; x<newTable.rows.length; x++)
  620. {
  621. var newCell = newTable.rows[x].insertCell();
  622. }
  623. objReference.outerHTML=newTable.outerHTML;
  624. break;
  625. case 'TD' :// IF the cursor is in a cell, or a cell is selected, it adds a new column to the right of that cell.
  626. var cellIndex = objReference.cellIndex;//Get cellIndex
  627. var rowIndex=objReference.parentElement.rowIndex;
  628. var parentTable=objReference.parentElement.parentElement.parentElement;
  629. var newTable=parentTable.cloneNode(true);
  630. for(x=0; x<newTable.rows.length; x++)
  631. {
  632. var newCell = newTable.rows[x].insertCell(cellIndex+1);
  633. if (x==rowIndex)newCell.id='ura';
  634. }
  635. parentTable.outerHTML=newTable.outerHTML;
  636. var r = editor.document.body.createTextRange();
  637. var item=editor.document.getElementById('ura');
  638. item.id='';
  639. r.moveToElementText(item);
  640. r.moveStart('character',r.text.length);
  641. r.select();
  642. break;
  643. default :
  644. return;
  645. }
  646. }
  647. function cws_DeleteColumn()
  648. {
  649. editor = IframeID;
  650. objReference=cws_GetRangeReference(editor);
  651. objReference=cws_CheckTag(objReference,'/^(TABLE)|^(TR)|^(TD)|^(TBODY)/');
  652. switch(objReference.tagName)
  653. {
  654. case 'TD' :var rowIndex=objReference.parentElement.rowIndex;
  655. var cellIndex = objReference.cellIndex;//Get cellIndex
  656. var parentTable=objReference.parentElement.parentElement.parentElement;
  657. var newTable=parentTable.cloneNode(true);
  658. if (newTable.rows[0].cells.length==1)
  659. {
  660. parentTable.removeNode(true);
  661. return;
  662. }
  663. for(x=0; x<newTable.rows.length; x++)
  664. {
  665. if (newTable.rows[x].cells[cellIndex]=='[object]')
  666. {
  667. newTable.rows[x].deleteCell(cellIndex);
  668. }
  669. }
  670. if (cellIndex>=newTable.rows[0].cells.length)
  671. {
  672. cellIndex=newTable.rows[0].cells.length-1;
  673. }
  674. if (cellIndex>=0)  newTable.rows[rowIndex].cells[cellIndex].id='ura';
  675. parentTable.outerHTML=newTable.outerHTML;
  676. if (cellIndex>=0){
  677. var r = editor.document.body.createTextRange();
  678. var item=editor.document.getElementById('ura');
  679. item.id='';
  680. r.moveToElementText(item);
  681. r.moveStart('character',r.text.length);
  682. r.select();
  683. }
  684. break;
  685. default :return;
  686. }
  687. }
  688. function cws_InsertSymbol(str1)
  689. {
  690. cws_Composition.focus();
  691. if (cws_bIsIE5) cws_selectRange();
  692. cws_edit.pasteHTML(str1);
  693. }
  694. function cws_foremot()
  695. {
  696. var arr = showModalDialog(editorRootPath + "/editor_full/images/emot.jsp", "", "dialogWidth:26em; dialogHeight:13em; status:0; help:0");
  697. if (arr != null)
  698. {
  699. //content=cws_Composition.document.body.innerHTML;
  700. //content=content+arr;
  701. //cws_Composition.document.body.innerHTML=content;
  702. cws_InsertSymbol(arr);
  703. IframeID.focus();
  704. }
  705. else IframeID.focus();
  706. }
  707. function cws_forimg()
  708. {
  709. if (cws_bIsIE5){
  710. var arr=showModalDialog(editorRootPath + "/editor_full/images/img.jsp",window, "dialogWidth:26em; dialogHeight:20.5em; status:0; help:0");
  711. IframeID.focus();
  712. if (arr != null)
  713. {
  714. //content=cws_Composition.document.body.innerHTML;
  715. //content=content+arr[1];
  716. cws_InsertSymbol(arr[1]);
  717. IframeID.focus();
  718. //cws_Composition.document.body.innerHTML=content;
  719. //if (document.form2.upfiles.value !="")
  720. //{
  721. //document.form2.upfiles.value=document.form2.upfiles.value+"|"+get_upfilename(arr[2]);
  722. //}
  723. //else
  724. //{
  725. //document.form2.upfiles.value=get_upfilename(arr[2]);
  726. //}
  727. }
  728. else IframeID.focus();
  729. }
  730. else {
  731. cws_UserDialog('InsertImage');
  732. }
  733. }
  734. function cws_forlink()
  735. {
  736. if (cws_bIsIE5){
  737. var arr=showModalDialog(editorRootPath + "/editor_full/images/link.jsp",window, "dialogWidth:23em; dialogHeight:11em; status:0; help:0");
  738. IframeID.focus();
  739. if (arr != null)
  740. {
  741. cws_InsertSymbol(arr);
  742. IframeID.focus();
  743. }
  744. else IframeID.focus();
  745. }
  746. else {cws_UserDialog('CreateLink');}
  747. }
  748. function cws_forfile()
  749. {
  750. var arr = showModalDialog(editorRootPath + "/editor_full/images/file.htm", "", "dialogWidth:23em; dialogHeight:11em; status:0; help:0");
  751. if (arr != null)
  752. {
  753. //content=WBTB_Composition.document.body.innerHTML;
  754. //content=content+arr[1];
  755. //WBTB_Composition.document.body.innerHTML=content;
  756. cws_InsertSymbol(arr[1]);
  757. IframeID.focus();
  758. //if (document.form2.upfiles.value !="")
  759. //{
  760. //document.form2.upfiles.value=document.form2.upfiles.value+"|"+get_upfilename(arr[2]);
  761. //}
  762. //else
  763. //{
  764. //document.form2.upfiles.value=get_upfilename(arr[2]);
  765. //}
  766. }
  767. else IframeID.focus();
  768. }
  769. function getHTML() {
  770. var html;
  771. if (!cws_bTextMode) 
  772. {
  773. html = IframeID.document.body.innerHTML
  774. }
  775. else
  776. {
  777. html = IframeID.document.body.innerText
  778. }
  779. return html;
  780. }
  781. function setHTML(html) {
  782. IframeID.document.body.innerHTML = html;
  783. }