的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