如何返回"已完成"一段javascript代码

时间:2016-04-02 14:40:04

标签: javascript

我想将图像文件上传到服务器,然后在返回时在浏览器编辑器上显示。

为此,我有 #fileInput 表单输入(类型文件)将图像上传到服务器。

在更改 #fileInput 时,我触发 uploadAndReadURLfunction ,调用 app.uploader 进行上传。

上传完成后,会返回到评论线#34;来到这里"下面。但是,我希望它返回评论的行#34;不来这里"。我怎样才能实现这一目标。



var app = app ||  {};

(function(o) {
  "use strict";

  var ajax, getFormData;

  ajax = function(data) {
      var xmlhttp = new XMLHttpRequest(), uploaded;

      xmlhttp.addEventListener('readystatechange', function() {
        if(this.readyState === 4) {
          if(this.status === 200) {
            var res =this.response;

            if(res == 1) {
              console.log(res);  // Coming here.                  
            }
            
          }
        }
      });

      xmlhttp.open('post', o.options.processor);
      xmlhttp.send(data);
  };

  getFormData = function(source) {
      var data = new FormData(), i;

      for(i = 0; i < source.files.files.length; i = i + 1) {
          data.append('file[]', source.files.files[i]);
      }

      data.append('ajax', true);

      return data;
  };

  o.uploader = function(options) {
    o.options = options;

    if(o.options.files !== undefined) {
        ajax(getFormData(o.options));
       
    }
  }

}(app));





function uploadAndReadURL(input) {
  if(input.files && input.files[0]) {

    var f = document.getElementById('fileInput');
    
    app.uploader({
      files: f,
      processor: "/geornal/image",

      finished: function(data) {

        console.log("burada2.");     // Not coming here..
      },

      error: function() {
        console.log('Not working');
      }
    });
  }
}



$(document).ready(function(){
  $("#icerik2").on("change", "#fileInput", function(){
    uploadAndReadURL(this);
  });
});
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

  

uploadAndReadURL函数中有“finished:”部分。我不   知道如何从app功能调用“完成”。

尝试在o.options.finished()处理程序

中的if语句处调用readystatechange
if(res == 1) { o.options.finished(res); }