JAVASCRIPT   13

uploadbutton.js

Guest on 25th July 2021 04:24:50 PM

  1.  
  2. function KUploadButton(options) {
  3.         this.init(options);
  4. }
  5. _extend(KUploadButton, {
  6.         init : function(options) {
  7.                 var self = this,
  8.                         button = K(options.button),
  9.                         fieldName = options.fieldName || 'file',
  10.                         url = options.url || '',
  11.                         title = button.val(),
  12.                         extraParams = options.extraParams || {},
  13.                         cls = button[0].className || '',
  14.                         target = options.target || 'kindeditor_upload_iframe_' + new Date().getTime();
  15.                 options.afterError = options.afterError || function(str) {
  16.                         alert(str);
  17.                 };
  18.  
  19.                 var hiddenElements = [];
  20.                 for(var k in extraParams){
  21.                         hiddenElements.push('<input type="hidden" name="' + k + '" value="' + extraParams[k] + '" />');
  22.                 }
  23.  
  24.                 var html = [
  25.                         '<div class="ke-inline-block ' + cls + '">',
  26.                         (options.target ? '' : '<iframe name="' + target + '" style="display:none;"></iframe>'),
  27.                         (options.form ? '<div class="ke-upload-area">' : '<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data" target="' + target + '" action="' + url + '">'),
  28.                         '<span class="ke-button-common">',
  29.                         hiddenElements.join(''),
  30.                         '<input type="button" class="ke-button-common ke-button" value="' + title + '" />',
  31.                         '</span>',
  32.                         '<input type="file" class="ke-upload-file" name="' + fieldName + '" tabindex="-1" />',
  33.                         (options.form ? '</div>' : '</form>'),
  34.                         '</div>'].join('');
  35.  
  36.                 var div = K(html, button.doc);
  37.                 button.hide();
  38.                 button.before(div);
  39.  
  40.                 self.div = div;
  41.                 self.button = button;
  42.                 self.iframe = options.target ? K('iframe[name="' + target + '"]') : K('iframe', div);
  43.                 self.form = options.form ? K(options.form) : K('form', div);
  44.                 self.fileBox = K('.ke-upload-file', div);
  45.                 var width = options.width || K('.ke-button-common', div).width();
  46.                 K('.ke-upload-area', div).width(width);
  47.                 self.options = options;
  48.         },
  49.         submit : function() {
  50.                 var self = this,
  51.                         iframe = self.iframe;
  52.                 iframe.bind('load', function() {
  53.                         iframe.unbind();
  54.                         // 清空file
  55. ºfile
  56.                         var tempForm = document.createElement('form');
  57.                         self.fileBox.before(tempForm);
  58.                         K(tempForm).append(self.fileBox);
  59.                         tempForm.reset();
  60.                         K(tempForm).remove(true);
  61.  
  62.                         var doc = K.iframeDoc(iframe),
  63.                                 pre = doc.getElementsByTagName('pre')[0],
  64.                                 str = '', data;
  65.                         if (pre) {
  66.                                 str = pre.innerHTML;
  67.                         } else {
  68.                                 str = doc.body.innerHTML;
  69.         // Bugfix: https://github.com/kindsoft/kindeditor/issues/81
  70. ues/81
  71.                         str = _unescape(st// Bugfix: [IE] ä¸Šä¼ å›¾ç‰‡åŽï¼Œè¿›åº¦æ¡ä¸€ç›´å¤„äºŽåŠ è½½çŠ¶æ€ã€‚
  72. ¦æ¡ä¸€ç›´å¤„äºŽåŠ è½½çŠ¶æ€ã€‚
  73.                         iframe[0].src = 'javascript:false';
  74.                         try {
  75.                                 data = K.json(str);
  76.                         } catch (e) {
  77.                                 self.options.afterError.call(self, '<!doctype html><html>' + doc.body.parentNode.innerHTML + '</html>');
  78.                         }
  79.                         if (data) {
  80.                                 self.options.afterUpload.call(self, data);
  81.                         }
  82.                 });
  83.                 self.form[0].submit();
  84.                 return self;
  85.         },
  86.         remove : function() {
  87.                 va// Bugfix: [IE] ä¸Šä¼ å›¾ç‰‡åŽï¼Œè¿›åº¦æ¡ä¸€ç›´å¤„äºŽåŠ è½½çŠ¶æ€ã€‚
  88.  B//self.iframe[0].src = 'javascript:false';
  89. ï¼Œè¿›åº¦æ¡ä¸€ç›´å¤„äºŽåŠ è½½çŠ¶æ€ã€‚
  90.                 //self.iframe[0].src = 'javascript:false';
  91.                 self.iframe.remove();
  92.                 self.div.remove();
  93.                 self.button.show();
  94.                 return self;
  95.         }
  96. });
  97.  
  98. function _

Raw Paste


Login or Register to edit or fork this paste. It's free.