javascript - 加载图像预览的脚本不起作用

标签 javascript jquery addeventlistener

我创建了在上传之前显示图像的脚本,我如何使用 5 个输入文件进行上传,该脚本必须让每个输入文件显示一张图像或预览图像

脚本:

<script>
function handleFileSelect(evt,ids) {
  var files = evt.target.files;
  var f = files[0];
  var reader = new FileReader();

  reader.onload = (function(theFile) {
    return function(e) {
      document.getElementById('list'+ids).innerHTML = ['<img src="', e.target.result,'" title="', theFile.name, '" width="50"/>'].join('');
      ///alert("ok"+ids);
    };
  })(f);

  reader.readAsDataURL(f);
}
</script>

HTML 代码

<input type="file" id="files2" />
<output id="list2"></output>

为此输入文件 ID 调用脚本

<script>
document.getElementById('files2').addEventListener('change', function(){handleFileSelect('','2');},false);
</script>

正如你所看到的,我尝试从 handleFileSelect('','2') 发送变量,但永远不会起作用,我认为代码很好,但我肯定忘记了一些东西,我希望在这里可以帮助我解决这个问题,感谢社区

致以最诚挚的问候

最佳答案

试试这个代码

$(function () {
  var _URL = window.URL || window.webkitURL;
  $(".UploadImage").on("change", function () {
  	var preview = $(this).attr("data-img");
  	var file, img;
    if ((file = this.files[0])) {
    	img = new Image();
      img.onload = function () {
      	document.getElementById(preview).src = _URL.createObjectURL(file);   
      };
      img.src = _URL.createObjectURL(file);
    }
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="file" data-img="preview1" class="UploadImage" />
<img src="" id="preview1"/>
</div>

<div>
<input type="file" data-img="preview2" class="UploadImage" />
<img src="" id="preview2"/>
</div>

<div>
<input type="file" data-img="preview3" class="UploadImage" />
<img src="" id="preview3"/>
</div>

<div>
<input type="file" data-img="preview4" class="UploadImage" />
<img src="" id="preview4"/>
</div>

关于javascript - 加载图像预览的脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245207/

相关文章:

c# - 比较 C# MinDate 与 javascript 最小日期失败

javascript - 如何让我的代码在删除消息之前等待(discord.js)

javascript - float 图,使用图例打开/关闭系列

javascript - 此代码平稳运行了大约 50 秒,然后开始发送垃圾邮件 ERR_INSUFFICIENT_RESOURCES

javascript - 不必在 addEventListener 中传入参数吗?

javascript - 创建保留在屏幕右上角的电子邮件注册表单的最简单方法?

javascript - window.event.srcElement 无法在 mozilla firefox 中工作

c# - jquery 对话框和 asp.net 动态链接按钮

javascript - 在被光 DOM 中的元素(不是父元素)覆盖的影子 DOM 元素上触发事件

3d - three.js 加载具有多个可点击点的 .obj 文件