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

SCSI/ASPI

开发平台:

Others

  1. var attachments = new Array();
  2. var attachimgurl = new Array();
  3. function delAttach(id) {
  4. $('attachbody').removeChild($('localno_' + id).parentNode.parentNode);
  5. $('attachbtn').removeChild($('attachnew_' + id).parentNode);
  6. $('attachbody').innerHTML == '' && addAttach();
  7. $('localimgpreview_' + id) ? document.body.removeChild($('localimgpreview_' + id)) : null;
  8. countNum2Upload();
  9. if ($('localimgpreview_' + id + '_menu') )
  10. {document.body.removeChild($('localimgpreview_' + id + '_menu'));}
  11. }
  12. function delSWFAttach(id) {
  13. $('swfattach_' + id).style.display = 'none';
  14. $('delswfattach_' + id).checked = true;
  15. }
  16. function delEditAttach(id) {
  17. $('attach_' + id).style.display = 'none';
  18. $('delattach_' + id).checked = true;
  19. }
  20. /* function addAttach() {
  21.     if ($('attachbody').childNodes.length + ($('attachuploaded') ? $('attachuploaded').childNodes.length : 0) > maxattachments - 1){
  22. countNum2Upload();
  23. //num2upload++;
  24. return;
  25. }
  26. var id = aid;
  27. var tags, newnode, i;
  28. newnode = $('attachbtnhidden').firstChild.cloneNode(true);
  29. tags = newnode.getElementsByTagName('input');
  30. for(i in tags) {
  31. if(tags[i].name == 'postfile') {
  32. tags[i].id = 'attachnew_' + id;
  33. tags[i].onchange = function() {insertAttach(id)};
  34. tags[i].unselectable = 'on';
  35. }
  36. }
  37. $('attachbtn').appendChild(newnode);
  38.     newnode = $('attachbodyhidden').firstChild.cloneNode(true);
  39. tags = newnode.getElementsByTagName('input');
  40. for(i in tags) {
  41. if(tags[i].name == 'localid') {
  42. tags[i].value = id;
  43. }
  44. }
  45. tags = newnode.getElementsByTagName('span');
  46. for(i in tags) {
  47. if(tags[i].id == 'localfile[]') {
  48. tags[i].id = 'localfile_' + id;
  49. } else if(tags[i].id == 'cpadd[]') {
  50. tags[i].id = 'cpadd_' + id;
  51. } else if(tags[i].id == 'cpdel[]') {
  52. tags[i].id = 'cpdel_' + id;
  53. } else if(tags[i].id == 'localno[]') {
  54. tags[i].id = 'localno_' + id;
  55. } else if(tags[i].id == 'deschidden[]') {
  56. tags[i].id = 'deschidden_' + id;
  57. }
  58. }
  59. aid++;
  60. newnode.style.display = 'none';
  61. $('attachbody').appendChild(newnode);
  62. $('uploadlist').scrollTop = 10000;
  63. if (caninsertalbum) {
  64. tags = findtags(newnode, 'select');
  65. for(i in tags) {
  66. if(tags[i].name == 'albums') {
  67. tags[i].id = 'albums' + id;
  68. $('albums' + id).style.display='';
  69. }
  70. }
  71. }
  72. countNum2Upload();
  73. } */
  74. function insertAttach(id) {
  75. var localimgpreview = '';
  76. var path = $('attachnew_' + id).value;
  77. var extpos = path.lastIndexOf('.');
  78. var ext = extpos == -1 ? '' : path.substr(extpos + 1, path.length).toLowerCase();
  79. var re = new RegExp("(^|\s|,)" + ext + "($|\s|,)", "ig");
  80. var localfile = $('attachnew_' + id).value.substr($('attachnew_' + id).value.replace(/\/g, '/').lastIndexOf('/') + 1);
  81. var filename = mb_cutstr(localfile, 30);
  82. if(path == '') {
  83. return;
  84. }
  85. if(extensions != '' && (re.exec(extensions) == null || ext == '')) {
  86. alert('对不起,不支持上传此类扩展名的附件。');
  87. return;
  88. }
  89. attachexts[id] = is_ie && in_array(ext, ['gif', 'jpeg', 'jpg', 'png', 'bmp']) ? 2 : 1;
  90. if(attachexts[id] == 2) {
  91. previewfile = '';
  92. $('img_hidden').alt = id;
  93. $('img_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'image';
  94. try {
  95. $('attachnew_' + id).select();
  96. previewfile = document.selection.createRange().text;
  97. $('img_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = previewfile;
  98. } catch (e) {
  99. alert('无效的图片文件。');
  100. delAttach(id);
  101. return;
  102. }
  103. if(previewfile) {
  104. var wh = {'w' : $('img_hidden').offsetWidth, 'h' : $('img_hidden').offsetHeight};
  105. var aid = $('img_hidden').alt;
  106. if(wh['w'] >= 180 || wh['h'] >= 150) {
  107. wh = attachthumbImg(wh['w'], wh['h'], 180, 150);
  108. }
  109. attachwh[id] = wh;
  110. $('img_hidden').style.width = wh['w'];
  111. $('img_hidden').style.height = wh['h'];
  112. $('img_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
  113. div = document.createElement('div');
  114. div.id = 'localimgpreview_' + id;
  115. div.style.display = 'none';
  116. document.body.appendChild(div);
  117. div.innerHTML = '<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src=''+previewfile+'');width:'+wh['w']+';height:'+wh['h']+'" src='images/common/none.gif' border="0" aid="attach_'+ aid +'" alt="" />';
  118. }
  119. }
  120. $('cpdel_' + id).innerHTML = '<a href="###" class="deloption" onclick="delAttach(' + id + ')">删除</a>';
  121. $('cpadd_' + id).innerHTML = '<a href="###" title="点击这里将本附件插入帖子内容中当前光标的位置"' + 'onclick="insertAttachtext(' + id + ');return false;">插入</a>';
  122. $('localfile_' + id).innerHTML = '<span' + (attachexts[id] == 2 ? ' onmouseover="showpreview(this, 'localimgpreview_' + id + '')" ' : '') + '>' + filename + '</span>';
  123. $('attachnew_' + id).style.display = 'none';
  124. $('deschidden_' + id).style.display = '';
  125. $('deschidden_' + id).title = localfile;
  126. $('localno_' + id).parentNode.parentNode.style.display = '';
  127. addAttach();
  128. attachlist('open');
  129. }
  130. function attachlist(op) {
  131. if(!op) {
  132. op = textobj.className == 'autosave' ? 'close' : 'open';
  133. }
  134. if(op == 'open') {
  135. textobj.className = 'autosave';
  136. if(editbox) {
  137. editbox.className = 'autosave';
  138. }
  139. $('attachlist').style.display = '';
  140. if(Editorwin) {
  141. if(wysiwyg) {
  142. $('e_iframe').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 329)+ 'px';
  143. }
  144. $('e_textarea').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 329)+ 'px';
  145. }
  146. } else {
  147. textobj.className = 'autosave max';
  148. if(editbox) {
  149. editbox.className = 'autosave max';
  150. }
  151. $('attachlist').style.display = 'none';
  152. if(Editorwin) {
  153. if(wysiwyg) {
  154. $('e_iframe').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 150)+ 'px';
  155. }
  156. $('e_textarea').style.height = (parseInt($('floatwin_' + editoraction).style.height) - 150)+ 'px';
  157. }
  158. }
  159. }
  160. lastshowpreview = null;
  161. function showpreview(ctrlobj, showid) {
  162. if(lastshowpreview) {
  163. lastshowpreview.id = '';
  164. }
  165. if(!ctrlobj.onmouseout) {
  166.  ctrlobj.onmouseout = function() { hideMenu(); }
  167. }
  168. ctrlobj.id = 'imgpreview';
  169. lastshowpreview = ctrlobj;
  170. $('imgpreview_menu').innerHTML = '<table width="100%" height="100%"><tr><td align="center" valign="middle">' + $(showid).innerHTML + '</td></tr></table>';
  171. InFloat='floatlayout_' + editoraction;
  172. showMenu('imgpreview', false, 2, 1, 0);
  173. $('imgpreview_menu').style.top = (parseInt($('imgpreview_menu').style.top) - $('uploadlist').scrollTop) + 'px';
  174. }
  175. function attachpreview(obj, preview, width, height) {
  176. if(is_ie) {
  177. $(preview + '_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'image';
  178. try {
  179. $(preview + '_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = obj.value;
  180. } catch (e) {
  181. alert('无效的图片文件。');
  182. return;
  183. }
  184. var wh = {'w' : $(preview + '_hidden').offsetWidth, 'h' : $(preview + '_hidden').offsetHeight};
  185. var aid = $(preview + '_hidden').alt;
  186. if(wh['w'] >= width || wh['h'] >= height) {
  187. wh = attachthumbImg(wh['w'], wh['h'], width, height);
  188. }
  189. $(preview + '_hidden').style.width = wh['w']
  190. $(preview + '_hidden').style.height = wh['h'];
  191. $(preview + '_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
  192. $(preview).style.width = 'auto';
  193. $(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="" />';
  194. }
  195. }
  196. function insertAttachtext(id, iserr) {
  197.     if(!attachexts[id]) {
  198.         return;
  199.     }
  200.     if(attachexts[id] == 2) {
  201.         bbinsert && wysiwyg && iserr == false ? insertText($('localimgpreview_' + id + '_menu').innerHTML, false) : AddText('[localimg=' + attachwh[id]['w'] + ',' + attachwh[id]['h'] + ']' + id + '[/localimg]rnrn');
  202.     } else {
  203.         bbinsert && wysiwyg ? insertText('[local]' + id + '[/local]', false) : AddText('[local]' + id + '[/local]');
  204.     }
  205. }
  206. function attachthumbImg(w, h, twidth, theight) {
  207. twidth = !twidth ? thumbwidth : twidth;
  208. theight = !theight ? thumbheight : theight;
  209. var x_ratio = twidth / w;
  210. var y_ratio = theight / h;
  211. var wh = new Array();
  212. if((x_ratio * h) < theight) {
  213. wh['h'] = Math.ceil(x_ratio * h);
  214. wh['w'] = twidth;
  215. } else {
  216. wh['w'] = Math.ceil(y_ratio * w);
  217. wh['h'] = theight;
  218. }
  219. return wh;
  220. }
  221. function attachupdate(aid, ctrlobj) {
  222. objupdate = $('attachupdate'+aid);
  223. obj = $('attach'+aid);
  224. if(!objupdate.innerHTML) {
  225. obj.style.display = 'none';
  226. objupdate.innerHTML = '<input type="file" name="attachupdated"><input type="hidden" value="' + aid + '" name="attachupdatedid" />';
  227. ctrlobj.innerHTML = '取消';
  228. } else {
  229. obj.style.display = '';
  230. objupdate.innerHTML = '';
  231. ctrlobj.innerHTML = '更新';
  232. }
  233. }
  234. function insertAttachTag(aid) {
  235. if(wysiwyg) {
  236. insertText('[attach]' + aid + '[/attach]', false);
  237. } else {
  238. AddText('[attach]' + aid + '[/attach]');
  239. }
  240. }
  241. function insertAttachimgTag(aid) {
  242. if(wysiwyg) {
  243. eval('var attachimg = $('preview_' + aid + '')');
  244. insertText('<img src="' + attachimg.src + '" border="0" aid="attachimg_' + aid + '" width="180" alt="" />', false);
  245. } else {
  246. AddText('[attachimg]' + aid + '[/attachimg]');
  247. }
  248. }
  249. function thumbImg(w, h) {
  250.     var x_ratio = thumbwidth / w;
  251.     var y_ratio = thumbheight / h;
  252.     var wh = new Array();
  253.     if((x_ratio * h) < thumbheight) {
  254.         wh['h'] = Math.ceil(x_ratio * h);
  255.         wh['w'] = thumbwidth;
  256.     } else {
  257.         wh['w'] = Math.ceil(y_ratio * w);
  258.         wh['h'] = thumbheight;
  259.     }
  260.     return wh;
  261. }
  262. function addAttachUploaded(attaches) {
  263. var num = 1;
  264. for (i in attaches){
  265. if (num  > num2upload)
  266. break;
  267. try {
  268. addSingleAttachUploaded(attaches[i]);
  269. num++;
  270. } catch (e) { }
  271. }
  272. $('attachuploadednote').style.display = 'none';
  273. if (attaches.length >= num2upload && num2upload > 0)
  274. delAttach(aid - 1) ;
  275. countNum2Upload();
  276. }
  277. function countNum2Upload(){
  278. var empty = ($('attach_' + (aid-1)) && $('attach_' + (aid-1)).value=='') ? 1 : 0
  279. //var locallength = ($('attachbody').childNodes.length) - empty;
  280. var locallength = ($('attachbody').childNodes.length-1) - empty;
  281. var uploadedlength = $('attachuploaded')!=null ? $('attachuploaded').childNodes.length : 0;
  282. num2upload = maxattachments - locallength - uploadedlength;
  283. if (num2upload == 0 && $('batchupload'))
  284. $('batchupload').style.display = 'none';
  285.     if (num2upload > 0 && $('batchupload'))
  286. $('batchupload').style.display = '';
  287. if (num2upload < 0)
  288.     num2upload = 0;
  289. $('num2upload').innerHTML = num2upload;
  290. if ($('num2upload2'))
  291.     $('num2upload2').innerHTML = num2upload;
  292. if (attaches.length > num2upload)
  293. $("maxattachnote").style.display="";
  294. }
  295. function addSingleAttachUploaded(attach){
  296. var newnode = $('attachuploadedhidden').firstChild.cloneNode(true);
  297.     var id = attach.aid;
  298. var path = attach.attachment;
  299.     var ext = path.lastIndexOf('.') == -1 ? '' : path.substr(path.lastIndexOf('.') + 1, path.length).toLowerCase();
  300. var isimg = in_array(ext, ['gif', 'jpg', 'jpeg', 'png', 'bmp']) ? 2 : 1;
  301.     var tags;
  302.     tags = findtags(newnode, 'input');
  303.     for(i in tags) {
  304.         if(tags[i].name == 'attachid') {
  305.             tags[i].value = id;
  306.         }
  307.     }
  308.     tags = findtags(newnode, 'span');
  309.     for(i in tags) {
  310.         if(tags[i].id == 'attachfile[]') {
  311.             tags[i].id = 'attachfile_' + id;
  312. } else if(tags[i].id == 'sl_cpadd[]') {
  313. tags[i].id = 'sl_cpadd_' + id;
  314. } else if(tags[i].id == 'sl_cpdel[]') {
  315. tags[i].id = 'sl_cpdel_' + id;
  316. } else if(tags[i].id == 'sl_localno[]') {
  317. tags[i].id = 'sl_localno_' + id;
  318. } else if(tags[i].id == 'sl_deschidden[]') {
  319. tags[i].id = 'sl_deschidden_' + id;
  320. }
  321.     }
  322. if (caninsertalbum) {
  323. tags = findtags(newnode, 'select');
  324. for(i in tags) {
  325. if(tags[i].name == 'albums') {
  326. tags[i].id = 'albums' + id;
  327. }
  328. }
  329. }
  330.     auid++;
  331.     $('attachuploaded').appendChild(newnode);
  332. $('uploadlist').scrollTop = 10000;
  333. var err = false;
  334. $('sl_cpdel_' + id).innerHTML = '<a href="###" class="deloption" onclick="delUploadedAttach(' + id + ')">删除</a>';
  335. $('sl_cpadd_' + id).innerHTML = '<a href="###" title=",当前光标的位置"' + 'onclick="insertUploadedAttach' + (isimg == 2 ? 'img' : '') + 'Tag(' + id + ');return false;">插入</a>';
  336. $('attachfile_' + id).innerHTML = isimg == 2 ? '<span id="attachimgpreview_' + id + '" onmouseover="showpreview(this, 'attachimgpreview_' + id + '');"> <span class="smalltxt">[' + id + ']</span> <a href="###attachment" onclick="insertUploadedAttachimgTag(' + id + ');return false;">' + attach.attachment + '</a></span>' 
  337. + '<div class="popupmenu_popup" id="attachimgpreview_' + id + '" style="display: none;"><img style="max-width: 180px" id="attachimgpreview_' + id + '_image" src="'+rooturl+'attachment.aspx?attachmentid=' + id + '" onerror="this.onerror=null;this.src=''+rooturl+'attachment.aspx?attachmentid=' + id + '';" /></div>' : '<span>' + filename + '</span>';
  338. $('sl_deschidden_' + id).style.display = '';
  339. $('sl_deschidden_' + id).title = attach.attachment;
  340. $('sl_localno_' + id).parentNode.parentNode.style.display = '';
  341. }
  342. function insertUploadedAttachTag(aid) {
  343. if (bbinsert && wysiwyg) {
  344. insertText('[attach]' + aid + '[/attach]', false);
  345. } else {
  346. AddText('[attach]' + aid + '[/attach]');
  347. }
  348. }
  349. function insertUploadedAttachimgTag(aid) {
  350. if (bbinsert && wysiwyg) {
  351. var attachimgurl = 'attachment.aspx?attachmentid=' + aid;
  352. insertText('<img src="' + attachimgurl + '" border="0" aid="attachimg_' + aid + '" alt="" /><br /><br />', false);
  353. } else {
  354. AddText('[attachimg]' + aid + '[/attachimg]rnrn');
  355. }
  356. }
  357. function delUploadedAttach(id) {
  358.     $('attachuploaded').removeChild($('sl_cpdel_' + id).parentNode.parentNode);
  359. countNum2Upload();
  360.     if (num2upload > 0 && (!$("attach_" + (aid-1)) || $("attach_" + (aid-1)).value != ""))
  361.     addAttach();
  362. if ($('attachimgpreview_' + id + '_menu') )
  363. document.body.removeChild($('attachimgpreview_' + id + '_menu'));
  364. }
  365. //获取silverlight插件已经上传的附件列表  //sl上传完返回
  366. function getAttachmentList(sender, args) {
  367.      var attachment = args.AttchmentList;
  368.      if (isUndefined(attachment) || attachment == '[]') {
  369.  if (infloat == 1) {
  370. pagescrolls('swfreturn');return false;
  371.  }
  372.  else{swfuploadwin();return;}
  373.        
  374.      }
  375.      var attachmentList = eval("(" + attachment + ")");
  376.      addAttachUploaded(attachmentList);     
  377.         if (infloat == 1) {
  378. pagescrolls('swfreturn');return false;
  379.         }
  380. else
  381. {swfuploadwin();}
  382.  }
  383. function onLoad(plugin, userContext, sender) {
  384.      //只读属性,标识 Silverlight 插件是否已经加载。
  385.      //if (sender.getHost().IsLoaded) {
  386.          $("MultiUploadFile").content.JavaScriptObject.UploadAttchmentList = getAttachmentList;         
  387.     // }
  388.  }