post_editor.js
上传用户:wenllgg125
上传日期:2020-04-09
资源大小:7277k
文件大小:12k
源码类别:

SCSI/ASPI

开发平台:

Others

  1. /*
  2. [Discuz!] (C)2001-2007 Comsenz Inc.
  3. This is NOT a freeware, use is title to license terms
  4. $RCSfile: post_editor.js,v $
  5. $Revision: 1.10 $
  6. $Date: 2007/06/25 21:47:26 $
  7. */
  8. function checklength(theform) {
  9. var message = bbinsert && wysiwyg ? html2bbcode(getEditorContents()) : (!theform.parseurloff.checked ? parseurl(theform.message.value) : theform.message.value);
  10. var showmessage = postmaxchars != 0 ? lang['board_allowed'] + ': ' + postminchars + ' ' + lang['lento'] + ' ' + postmaxchars + ' ' + lang['bytes'] : '';
  11. alert('n' + lang['post_curlength'] + ': ' + mb_strlen(message) + ' ' + lang['bytes'] + 'nn' + showmessage);
  12. }
  13. function floatalert(s) {
  14. if(!infloat) {
  15. alert(s);
  16. } else {
  17. $('returnmessage').className = 'onerror';
  18. $('returnmessage').innerHTML = s;
  19. messagehandle();
  20. }
  21. }
  22. function validate(theform, previewpost) {
  23. if (typeof (titleEditor) != 'undefined' && titleEditor != null)
  24. {
  25. theform.title.value = html2bbcode(titleEditor.GetHtml().replace(/<[^>]*>/ig, '')).toString().substr(0, 60);
  26. if (theform.htmltitle)
  27. {
  28. theform.htmltitle.value = titleEditor.GetHtml();
  29. }
  30. }
  31. switchEditor(0);
  32. switchEditor(1);
  33. switchEditor(0);
  34. var message = bbinsert && wysiwyg ? html2bbcode(getEditorContents()) : (!theform.parseurloff.checked ? parseurl(theform.message.value) : theform.message.value);
  35. if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.title.value == "") || message.replace(unescape("%0A"), "") == "") {
  36. floatalert(lang['post_title_and_message_isnull']);
  37. if(special != 2) {
  38. try{theform.title.focus();}catch(e){};
  39. }
  40. return false;
  41. } else if(theform.title.value.length > 60) {
  42. floatalert(lang['post_title_toolong']);
  43. try{theform.title.focus();}catch(e){};
  44. return false;
  45. }
  46. if(in_array($('postsubmit').name, ['topicsubmit', 'editsubmit'])) {
  47. if ((theform.postbytopictype) && (theform.typeid) && (theform.postbytopictype.value == "1") && (theform.typeid.value == "0")) { 
  48. floatalert(lang['post_type_isnull']);
  49. //theform.typeid.focus();
  50. return false;
  51. if ($("createpoll")||$("updatepoll")){
  52. var pollcount = 0;
  53. var polls = document.getElementsByName("pollitemid");
  54. var polloptionids = document.getElementsByName("optionid");
  55. var displayorders = document.getElementsByName("displayorder");
  56. for ( var i = 0; i < polls.length; i++){
  57. if (polls[i].value != "")
  58. {
  59. pollcount ++;
  60. if ($("PollItemname").value == ""){
  61. $("PollItemname").value = polls[i].value;
  62. if($("updatepoll"))
  63. {
  64.     $("PollOptionID").value = (polloptionids[i].value == '' ? '0' : polloptionids[i].value);
  65.     $("PollOptionDisplayOrder").value = displayorders[i].value;
  66. }
  67. }
  68. else{
  69.      $("PollItemname").value = $("PollItemname").value + "rn" + polls[i].value;
  70.         
  71.      if($("updatepoll"))
  72.      {
  73.          $("PollOptionID").value = $("PollOptionID").value + "rn" + (polloptionids[i].value == '' ? '0' : polloptionids[i].value);
  74.          $("PollOptionDisplayOrder").value = $("PollOptionDisplayOrder").value  + "rn" + displayorders[i].value;
  75.      }
  76. }
  77. }
  78. }
  79. if (pollcount < 2){
  80. floatalert("投票项不得少于2个");
  81. $("PollItemname").value = "";
  82. return false;
  83. }
  84. if (pollcount > maxpolloptions){
  85. floatalert("系统设置为投票项不得多于" + maxpolloptions + "个");
  86. $("PollItemname").value = "";
  87. return false;
  88. }
  89. }
  90. /*
  91. if(theform.typeid && (theform.typeid.options && theform.typeid.options[theform.typeid.selectedIndex].value == 0) && typerequired) {
  92. alert(lang['post_type_isnull']);
  93. theform.typeid.focus();
  94. return false;
  95. }
  96. if(special == 2 && !tradefirst) {
  97. if(theform.item_name.value == "") {
  98. alert(lang['post_trade_goodsname_null']);
  99. theform.item_name.focus();
  100. return false;
  101. } else if(theform.item_price.value == "") {
  102. alert(lang['post_trade_price_null']);
  103. theform.item_price.focus();
  104. return false;
  105. }
  106. } else if(special == 3 && isfirstpost) {
  107. if(theform.rewardprice.value == "") {
  108. alert(lang['post_reward_credits_null']);
  109. theform.rewardprice.focus();
  110. return false;
  111. }
  112. } else if(special == 4 && isfirstpost) {
  113. if(theform.activityclass.value == "") {
  114. alert(lang['post_activity_sort_null']);
  115. theform.activityclass.focus();
  116. return false;
  117. } else if($('starttimefrom_0').value == "" && $('starttimefrom_1').value == "") {
  118. alert(lang['post_activity_fromtime_null']);
  119. return false;
  120. } else if(theform.activityplace.value == "") {
  121. alert(lang['post_activity_addr_null']);
  122. theform.activityplace.focus();
  123. return false;
  124. }
  125. }
  126. */
  127. }
  128. if(!disablepostctrl && ((postminchars != 0 && mb_strlen(message) < postminchars) || (postmaxchars != 0 && mb_strlen(message) > postmaxchars))) {
  129. floatalert(lang['post_message_length_invalid'] + 'nn' + lang['post_curlength'] + ': ' + mb_strlen(message) + ' ' + lang['bytes'] + 'n' +lang['board_allowed'] + ': ' + postminchars + ' ' + lang['lento'] + ' ' + postmaxchars + ' ' + lang['bytes']);
  130. return false;
  131. }
  132. theform.message.value = message;
  133. //商品信息检查
  134. if($('amount') != null) {
  135.    if(!validategoods()) {//该方法的具体实现详见javascript目录下的template_postgoods.js或template_eidtgoods.js文件
  136.    return false;
  137.    }
  138. }
  139. /*else{
  140. if(in_array($('postsubmit').name, ['topicsubmit', 'replysubmit'])){
  141. //seccheck(theform, seccodecheck, secqaacheck, previewpost);
  142. }    
  143. }*/
  144. /*  if(previewpost || $('postsubmit').name == 'editsubmit') {
  145. theform.title.disabled = false;
  146. //alert(theform.title.disabled);
  147. return true;
  148. } */
  149. if(in_array($('postsubmit').name, ['topicsubmit'])) {
  150. if (theform.title.value == getcookie("dnt_title")) {
  151. floatalert("请勿重复发帖,稍后再试");
  152. return false;
  153. }
  154. }
  155.    
  156. if(!infloat) 
  157. {
  158.     theform.title.disabled = false;
  159.         return true;
  160.     } else {
  161. messagehandle();   
  162.     $('postform').action=postaction;
  163.     var message = wysiwyg ? html2bbcode(getEditorContents()) : (!theform.parseurloff.checked ? parseurl(theform.message.value) : theform.message.value);
  164.     theform.message.value = message;
  165.     ajaxpost('postform', 'returnmessage', 'returnmessage', 'onerror');
  166. return false;
  167. }
  168. }
  169. function seccheck(theform, seccodecheck, secqaacheck, previewpost) {
  170. if(!previewpost && (seccodecheck || secqaacheck)) {
  171. var url = 'ajax.php?inajax=1&action=';
  172. if(seccodecheck) {
  173. var x = new Ajax();
  174. x.get(url + 'checkseccode&seccodeverify=' + $('seccodeverify').value, function(s) {
  175. if(s != 'succeed') {
  176. alert(s);
  177. $('seccodeverify').focus();
  178. } else if(secqaacheck) {
  179. checksecqaa(url, theform);
  180. } else {
  181. postsubmit(theform);
  182. }
  183. });
  184. } else if(secqaacheck) {
  185. checksecqaa(url, theform);
  186. }
  187. } else {
  188. postsubmit(theform, previewpost);
  189. }
  190. }
  191. function checksecqaa(url, theform) {
  192. var x = new Ajax();
  193. var secanswer = $('secanswer').value;
  194. secanswer = is_ie && document.charset == 'utf-8' ? encodeURIComponent(secanswer) : secanswer;
  195. x.get(url + 'checksecanswer&secanswer=' + secanswer, function(s) {
  196. if(s != 'succeed') {
  197. alert(s);
  198. $('secanswer').focus();
  199. } else {
  200. postsubmit(theform);
  201. }
  202. });
  203. }
  204. function postsubmit(theform, previewpost) {
  205. if(!previewpost) {
  206. theform.replysubmit ? theform.replysubmit.disabled = true : theform.topicsubmit.disabled = true;
  207. theform.submit();
  208. }
  209. }
  210. function previewpost(){
  211. if(!validate($('postform'), true)) {
  212. try{$('title').focus();}catch(e){}
  213. return;
  214. }
  215. $("previewmessage").innerHTML = '<span class="bold"><span class="smalltxt">' + $('title').value + '</span></span><br /><br /><span style="font-size: {MSGFONTSIZE}">' + bbcode2html($('postform').message.value) + '</span>';
  216. $("previewtable").style.display = '';
  217. window.scroll(0, 0);
  218. }
  219. function clearcontent() {
  220. if(wysiwyg && bbinsert) {
  221. editdoc.body.innerHTML = is_moz ? '<br />' : '';
  222. } else {
  223. textobj.value = '';
  224. }
  225. }
  226. function resizeEditor(change) {
  227. var editorbox = bbinsert ? editbox : textobj;
  228. var newheight = parseInt(editorbox.style.height, 10) + change;
  229. if(newheight >= 100) {
  230. editorbox.style.height = newheight + 'px';
  231. }
  232. }
  233. function encodeURL(a) {
  234. return window.encodeURIComponent?encodeURIComponent(a):escape(a)
  235. }
  236. function relatekw(title, message) {
  237. if (typeof title=='undefined')
  238. {
  239. title = $('title').value;
  240. }
  241. if (typeof message=='undefined')
  242. {
  243. message = getEditorContents();
  244. }
  245. title = encodeURL(title);
  246. message = message.replace(/&/ig, '', message);
  247. message = encodeURL(message);
  248. _sendRequest('tools/ajax.aspx?t=relatekw', relatedkw, true, 'titleenc=' + title + '&contentenc=' + message);
  249. }
  250. function relatedkw(obj) {
  251. if (obj == null || typeof(obj) != "object" || obj.firstChild == null)
  252. {
  253. return;
  254. }
  255. if (is_ie)
  256. {
  257. evalscript(obj.text);
  258. }
  259. else
  260. {
  261. evalscript(obj.firstChild.firstChild.nodeValue);
  262. }
  263. }
  264. function attachlist(op) {
  265. if(!op) {
  266. op = textobj.className == 'autosave' ? 'close' : 'open';
  267. }
  268. if(op == 'open') {
  269. textobj.className = 'autosave';
  270. if(editbox) {
  271. editbox.className = 'autosave';
  272. }
  273. $('attachlist').style.display = '';
  274. if(Editorwin) {
  275. if(wysiwyg) {
  276. $('e_iframe').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 329)+ 'px';
  277. }
  278. $('e_textarea').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 329)+ 'px';
  279. }
  280. } else {
  281. textobj.className = 'autosave max';
  282. if(editbox) {
  283. editbox.className = 'autosave max';
  284. }
  285. $('attachlist').style.display = 'none';
  286. if(Editorwin) {
  287. if(wysiwyg) {
  288. $('e_iframe').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 150)+ 'px';
  289. }
  290. $('e_textarea').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 150)+ 'px';
  291. }
  292. }
  293. }
  294. lastshowpreview = null;
  295. function showpreview(ctrlobj, showid) {
  296. if(lastshowpreview) {
  297. lastshowpreview.id = '';
  298. }
  299. if(!ctrlobj.onmouseout) {
  300.  ctrlobj.onmouseout = function() { hideMenu(); }
  301. }
  302. ctrlobj.id = 'imgpreview';
  303. lastshowpreview = ctrlobj;
  304. $('imgpreview_menu').innerHTML = '<table width="100%" height="100%"><tr><td align="center" valign="middle">' + $(showid).innerHTML + '</td></tr></table>';
  305. InFloat='floatlayout_' + editoraction;
  306. showMenu('imgpreview', false, 2, 1, 0);
  307. $('imgpreview_menu').style.top = (parseInt($('imgpreview_menu').style.top) - $('uploadlist').scrollTop) + 'px';
  308. }
  309. function attachpreview(obj, preview, width, height) {
  310. if(is_ie) {
  311. $(preview + '_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'image';
  312. try {
  313. $(preview + '_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = obj.value;
  314. } catch (e) {
  315. alert('无效的图片文件。');
  316. return;
  317. }
  318. var wh = {'w' : $(preview + '_hidden').offsetWidth, 'h' : $(preview + '_hidden').offsetHeight};
  319. var aid = $(preview + '_hidden').alt;
  320. if(wh['w'] >= width || wh['h'] >= height) {
  321. wh = attachthumbImg(wh['w'], wh['h'], width, height);
  322. }
  323. $(preview + '_hidden').style.width = wh['w']
  324. $(preview + '_hidden').style.height = wh['h'];
  325. $(preview + '_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
  326. $(preview).style.width = 'auto';
  327. $(preview).innerHTML = '<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='' + obj.value+'');width:'+wh['w']+';height:'+wh['h']+'" src='images/common/none.gif' border="0" alt="" />';
  328. }
  329. }