的jsfiddle网址:http://jsfiddle.net/Xotic750/AjtLx使用readAsDataURL()用于图像预览
这方面的工作了一整天,我看不到的问题。这可能是由于我对FileReader对象的工作原理的狭隘理解,但我想要做的是使用readAsDataURL()获取用户选择的图像,并在屏幕上的表格中预览它们。一切都在努力减去......你猜对了......预览......很好。我认为我很近,因为预览会起作用,但它只显示该集合的最后一个图像。比如说,如果我上传了6张图像,那么第一行的3张图像就会被打破,第二行的第2张会被打破,然后最后的第6张图像会显示预览....任何建议非常感谢。此外,一旦这个作品它可能会帮助别人努力,因为我已经找遍了一个解决这个问题,我似乎无法挖什么后做同样的事情....
function PreviewImages() {
var inputID = document.getElementById('input_clone');
var totalImages = inputID.files.length;
var imagesPerRow = 3;
var numRows = totalImages/imagesPerRow;
var row = "";
var cell = "";
var element1 = "";
var elementID = "";
for(var i = 0; i < numRows; i++){ //create rows
row = document.getElementById('image_preview_table').insertRow(i);
for(var ii = 0; ii < imagesPerRow; ii++){ //create cells
cell = row.insertCell(ii);
elementID = "img_" + ii;
element1 = document.createElement("img");
element1.name = elementID;
element1.id = elementID
cell.appendChild(element1);
oFReader = new FileReader();
oFReader.onload = function(oFREvent){
var dataURI = oFREvent.target.result;
var image = document.getElementById(elementID);
image.src = dataURI;
};
oFReader.readAsDataURL(document.getElementById("input_clone").files[ii]);
}
}
}
不错!似乎工作得很好,但在Firefox中遇到问题。 – commanderZiltoid 2013-05-08 03:13:04
我自己看了看,发现了问题。第二个参数实际上在'removeEventListener'中不是可选的。 Chrome显然不抱怨,但Firefox。修改小提琴可以在http://jsfiddle.net/6cgTj/23/找到。 – 2013-05-08 03:59:38
@Ray Nicholas,是的,这是Firefox的问题。我已更新,所有应该工作。 – Xotic750 2013-05-08 10:52:20