FTB-Pro.js
上传用户:lishan0805
上传日期:2019-12-08
资源大小:12048k
文件大小:92k
源码类别:

OA系统

开发平台:

C#

  1. FTB_FreeTextBox.prototype.InsertDiv = function() {
  2. var div = window.document.createElement("div");
  3. div.style.width = "200px";
  4. div.style.height = "200px";
  5. div.style.border = "dotted 1px gray";
  6. this.InsertElement(div);
  7. };
  8. FTB_FreeTextBox.prototype.EditStyle = function() {
  9. // custom implimentation of GetParentElement() and GetSelection() and GetRange()
  10. el = this.GetParentElement();
  11. this.EditElementStyle(el);
  12. };
  13. FTB_FreeTextBox.prototype.EditElementStyle = function(el) {
  14. var styleWin = window.open("","propWin","width=530,height=420,status=0,toolbars=0");
  15. if (styleWin) {
  16. styleWin.focus();
  17. } else {
  18. alert("Please turn off your PopUp blocking software");
  19. return;
  20. }
  21. //return;
  22. html = FTB_StyleEditorHtml;
  23. styleWin.document.body.innerHTML = '';
  24. styleWin.document.open();
  25. styleWin.document.write( html );
  26. styleWin.document.close();
  27. launchParameters = new Object();
  28. launchParameters['ftb'] = this;
  29. launchParameters['element'] = el;
  30. styleWin.launchParameters = launchParameters;
  31. styleWin.load();
  32. };
  33. /* START: Table Functions 
  34. These functions are derived from HTMLAREA who
  35. gave permission for them to be used in FreeTextBox
  36. - Thanks HTMLAREA!!
  37. ----------------------------------------------- */
  38. FTB_FreeTextBox.prototype.InsertTableColumnBefore = function() {
  39. this.InsertTableColumn(false);
  40. };
  41. FTB_FreeTextBox.prototype.InsertTableColumnAfter = function() {
  42. this.InsertTableColumn(true);
  43. };
  44. FTB_FreeTextBox.prototype.InsertTableColumn = function(after) {
  45.    var td = this.GetNearest("td");
  46.    if (!td) {
  47.       return;
  48.    }
  49.    var rows = td.parentNode.parentNode.rows;
  50.    var index = td.cellIndex;
  51.    for (var i = rows.length; --i >= 0;) {
  52.       var tr = rows[i];
  53.       var otd = this.designEditor.document.createElement("td");
  54.       otd.innerHTML = (FTB_Browser.isIE) ? "" : "<br />";
  55.       //if last column and insert column after is select append child
  56.       if (index==tr.cells.length-1 && after) {
  57.          tr.appendChild(otd);
  58.       } else {
  59.          var ref = tr.cells[index + ((after) ? 1 : 0)]; // 0 
  60.          tr.insertBefore(otd, ref);
  61.       } 
  62.    }
  63. };
  64. FTB_FreeTextBox.prototype.InsertTableRowBefore = function() {
  65. this.InsertTableRow(false);
  66. };
  67. FTB_FreeTextBox.prototype.InsertTableRowAfter = function() {
  68. this.InsertTableRow(true);
  69. };
  70. FTB_FreeTextBox.prototype.InsertTableRow = function(after) {
  71. var tr = this.GetNearest("tr");
  72. if (!tr) return;
  73. var otr = tr.cloneNode(true);
  74. this.ClearRow(otr);
  75. tr.parentNode.insertBefore(otr, ((after) ? tr.nextSibling : tr));
  76. };
  77. FTB_FreeTextBox.prototype.DeleteTableColumn = function() {
  78. var td = this.GetNearest("td");
  79. if (!td) {
  80. return;
  81. }
  82. var index = td.cellIndex;
  83. if (td.parentNode.cells.length == 1) {
  84. return;
  85. }
  86. // set the caret first to a position that doesn't disappear
  87. this.SelectNextNode(td);
  88. var rows = td.parentNode.parentNode.rows;
  89. for (var i = rows.length; --i >= 0;) {
  90. var tr = rows[i];
  91. tr.removeChild(tr.cells[index]);
  92. }
  93. };
  94. FTB_FreeTextBox.prototype.DeleteTableRow = function() {
  95. var tr = this.GetNearest("tr");
  96. if (!tr) {
  97. return;
  98. }
  99. var par = tr.parentNode;
  100. if (par.rows.length == 1) {
  101. return;
  102. }
  103. // set the caret first to a position that doesn't disappear.
  104. this.SelectNextNode(tr);
  105. par.removeChild(tr);
  106. };
  107. // helper table
  108. FTB_FreeTextBox.prototype.ClearRow = function(tr) {
  109. var tds = tr.getElementsByTagName("td");
  110. for (var i = tds.length; --i >= 0;) {
  111. var td = tds[i];
  112. td.rowSpan = 1;
  113. td.innerHTML = (FTB_Browser.isIE) ? "" : "<br />";
  114. }
  115. };
  116. FTB_FreeTextBox.prototype.SplitRow = function(td) {
  117. var n = parseInt("" + td.rowSpan);
  118. var nc = parseInt("" + td.colSpan);
  119. td.rowSpan = 1;
  120. tr = td.parentNode;
  121. var itr = tr.rowIndex;
  122. var trs = tr.parentNode.rows;
  123. var index = td.cellIndex;
  124. while (--n > 0) {
  125. tr = trs[++itr];
  126. var otd = editor._doc.createElement("td");
  127. otd.colSpan = td.colSpan;
  128. otd.innerHTML = mozbr;
  129. tr.insertBefore(otd, tr.cells[index]);
  130. }
  131. };
  132. FTB_FreeTextBox.prototype.SplitCol = function(td) {
  133. var nc = parseInt("" + td.colSpan);
  134. td.colSpan = 1;
  135. tr = td.parentNode;
  136. var ref = td.nextSibling;
  137. while (--nc > 0) {
  138. var otd = editor._doc.createElement("td");
  139. otd.rowSpan = td.rowSpan;
  140. otd.innerHTML = mozbr;
  141. tr.insertBefore(otd, ref);
  142. }
  143. }
  144. FTB_FreeTextBox.prototype.SplitCell = function(td) {
  145. var nc = parseInt("" + td.colSpan);
  146. splitCol(td);
  147. var items = td.parentNode.cells;
  148. var index = td.cellIndex;
  149. while (nc-- > 0) {
  150. this.SplitRow(items[index++]);
  151. }
  152. };
  153. /* FORM Functions
  154. -------------------------------------- */
  155. FTB_FreeTextBox.prototype.IsInForm = function() {
  156. return (this.GetNearest("form")) ? true : false ;
  157. };
  158. FTB_FreeTextBox.prototype.InsertForm = function() {
  159. var form = window.document.createElement("form");
  160. this.InsertElement(form);
  161. };
  162. FTB_FreeTextBox.prototype.InsertCheckBox = function() {
  163. this.InsertInputElement("","checkbox");
  164. };
  165. FTB_FreeTextBox.prototype.InsertTextBox = function() {
  166. this.InsertInputElement("","text");
  167. };
  168. FTB_FreeTextBox.prototype.InsertRadioButton = function() {
  169. this.InsertInputElement("","radio");
  170. };
  171. FTB_FreeTextBox.prototype.InsertButton = function() {
  172. this.InsertInputElement("","button");
  173. };
  174. FTB_FreeTextBox.prototype.InsertDropDownList = function() {
  175. var select = window.document.createElement("select");
  176. this.InsertElement(select);
  177. };
  178. FTB_FreeTextBox.prototype.InsertTextArea = function() {
  179. var textarea = window.document.createElement("textarea");
  180. this.InsertElement(textarea);
  181. };
  182. FTB_FreeTextBox.prototype.InsertInputElement = function(id,type) {
  183. var input = window.document.createElement("input");
  184. input.id = id;
  185. input.type = type;
  186. this.InsertElement(input);
  187. }
  188. /* Color picker Functions
  189. -------------------------------------- */
  190. FTB_FreeTextBox.prototype.FontForeColorPicker = function() {
  191. this.LaunchColorPickerWindow('forecolor');
  192. };
  193. FTB_FreeTextBox.prototype.FontBackColorPicker = function() {
  194. this.LaunchColorPickerWindow('backcolor');
  195. };
  196. FTB_FreeTextBox.prototype.LaunchColorPickerWindow = function(commandName, startValue) {
  197. var pickerWin = window.open("","colorPickerWin","width=290,height=180");
  198. if (pickerWin) {
  199. pickerWin.focus();
  200. } else {
  201. alert("Please turn off your PopUp blocking software");
  202. return;
  203. }
  204. pickerWin.document.body.innerHTML = '';
  205. pickerWin.document.open();
  206. pickerWin.document.write(FTB_ColorPickerHtml);
  207. pickerWin.document.close();
  208. launchParameters = new Object();
  209. launchParameters['ftb'] = this;
  210. launchParameters['commandName'] = commandName;
  211. pickerWin.launchParameters = launchParameters;
  212. pickerWin.load();
  213. };
  214. FTB_FreeTextBox.prototype.InsertImage = function() {
  215. var imageWin = window.open("","imageWin","width=500,height=310");
  216. if (imageWin) {
  217. imageWin.focus();
  218. } else {
  219. alert("Please turn off your PopUp blocking software");
  220. return;
  221. }
  222. //imageWin.document.body.innerHTML = '';
  223. imageWin.document.open();
  224. imageWin.document.write(FTB_ImagePopUpHtml);
  225. imageWin.document.close();
  226. launchParameters = new Object();
  227. launchParameters['ftb'] = this;
  228. imageWin.launchParameters = launchParameters;
  229. imageWin.load();
  230. };
  231. /* Misc Pro features
  232. --------------------------------------- */
  233. FTB_FreeTextBox.prototype.WordClean = function() {
  234. var text = this.designEditor.document.body.innerHTML;
  235. text=text.replace(/<FONT[^>]*>/gi,"");
  236. text=text.replace(/</FONT>/gi,"");
  237. text=text.replace(/<U>/gi,"");
  238. text=text.replace(/</U>/gi,"");
  239. text=text.replace(/<H[^>]*>/gi,"");
  240. text=text.replace(/</H[^>]*>/gi,"");
  241. // save BRs
  242. text=text.replace(/<BR[^>]*>/gi,"&linebreak");
  243. // Change these tags.
  244. text=text.replace(/<B>]*>/gi,"&bold");
  245. text=text.replace(/</B[^>]*>/gi,"&cbold");
  246. text=text.replace(/<STRONG[^>]*>/gi,"&bold");
  247. text=text.replace(/</STRONG[^>]*>/gi,"&cbold");
  248. text=text.replace(/<I[^>]*>/gi,"&ital");
  249. text=text.replace(/</I[^>]*>/gi,"&cital");
  250. text=text.replace(/<EM[^>]*>/gi,"&ital");
  251. text=text.replace(/</EM[^>]*>/gi,"&cital");
  252. text=text.replace(/<UL[^>]*>/gi,"&ultag");
  253. text=text.replace(/<LI[^>]*>/gi,"&litag");
  254. text=text.replace(/<OL[^>]*>/gi,"&oltag");
  255. text=text.replace(/</OL>/gi,"&olctag");
  256. text=text.replace(/</LI>/gi,"&lictag");
  257. text=text.replace(/</UL>/gi,"&ulctag");
  258. text=text.replace(/<P[^>]*>/gi,"&parag");
  259. text=text.replace(/</P>/gi,"");
  260. /*
  261. text=text.replace(/