我正在研究一個HTML小部件,該小部件將嵌入到iPad的iBooks Author中的iBook中。壓縮並保存捕獲到localStorage的圖像
我有一個簡單的按鈕來觸發iPad上的圖像捕捉,所有工作正常。
<div id="zeroDiv">
<input type="file" id="getPic" accept="image/*">
</div>
<div id="picWrapper">
<img id="image">
<div id="buttDiv">
<button id="picButt"><span class="buttText">Insert image</span>
</button>
</div>
</div>
和
$('#picButt').click(function() {
$('#getPic').trigger('click');
});
$(document).ready(function() {
$("#getPic").on("change", gotPic);
$("#image").load();
});
function gotPic(event) {
$("#image").attr("src", URL.createObjectURL(event.target.files[0]));
$("#picButt span").text("Change image");
}
小提琴在https://jsfiddle.net/mikawaben/cq2yrh2z/
然而,當用戶移動過一個頁面和返回時,圖像被丟失的頁面重新加載。我需要將圖像存儲在localStorage中。
我知道http://jsfiddle.net/VXdkC/2/(本網站上的穆薩提供)提供的代碼可能是我的關鍵。
$('#addNote').click(function() {
var Title = $('#title').val();
var Message = $('#message').val();
var pic = document.getElementById("file").files[0];
var imgUrl;
var reader = new FileReader();
reader.onload = function(e) {
var imgURL = reader.result;
$('#notes').prepend("<div class='entry'><h1>" + Title + "</h1></p>"+ "<p>" + Message + "<img src=" + imgURL + "></p> </div>");
var notes = $('#notes').html();
localStorage.setItem('notes', notes);
saveDataToLocalStorage(imgURL);
}
reader.readAsDataURL(pic);
return false;
});
//show content of notes in storage
$('#notes').html(localStorage.getItem('notes'));
return false;
但是,儘管它搞了幾個小時,但我沒有得到它的工作。任何人都可以借用這個嗎?
我也關心壓縮。我是否需要使用base64編碼或某些東西,以防圖像大小導致整個事件崩潰?
什麼是'saveDataToLocalStorage'和你在哪裏嘗試重新顯示在返回的形象呢? – Musa 2015-03-25 16:58:32
Hi Musa ...我想在picButt按鈕上方顯示圖像。我已經在我的小提琴中工作了。由於'saveDataToLocalStorage'是我從你的小提琴引用的代碼的一部分,我希望你能告訴我它是什麼!代碼運行時,我需要先檢查本地存儲器中的圖像,如果有,則將其顯示在按鈕上方。如果不是,則捕獲圖像時不僅在頁面上顯示該圖像,而且還將其保存到本地存儲。謝謝! – 2015-03-26 02:52:19
上方的'picButt'按鈕=在'picWrapper' div – 2015-03-26 03:30:21