jQuery onload函数根本不起作用

时间:2015-08-02 18:34:49

标签: javascript jquery

我试过这个例子,尤其是在img.onload中 这里的问题在哪里

编辑后的

和img.load()

中的remove()
function displayPreview(files)
{ var file = files[0];
 var img = new Image();
 var sizeKB = file.size / 1024;
 img.onload = function(){ 
 alert("Size: " + sizeKB + "KB\nWidth: " + img.width + "\nHeight: "+  img.height); 
  alert("image is loaded"); } 
 img.src = _URL.createObjectURL(file);
 }

2 个答案:

答案 0 :(得分:1)

()之后删除img.onload()用于执行函数,而不是分配。

答案 1 :(得分:0)

()之后移除img.onload,当您使用带有函数名称的()时,您正在调用它。您需要定义onload函数

编辑:

您可以使用FileReader API。

  

FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容。

其方法FileReader.readAsDataURL()

  

readAsDataURL方法用于读取指定Blob或File的内容。

注意:它适用于现代浏览器

$(document).ready(function() {

  $('#file').change(function(e) {

    var file = this.files[0];
    var sizeKB = file.size / 1024;

    var img = new Image();
    img.onload = function() {
      alert("Size: " + sizeKB + "KB\nWidth: " + img.width + "\nHeight: " + img.height);
    }


    var reader = new FileReader();
    reader.onload = function(e) {
      $('#imagedisplay').attr('src', e.target.result);
      img.src = e.target.result;
    }

    reader.readAsDataURL(file);

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="file" name="file" />
<img id="imagedisplay" src="" />