試圖加載&將圖像檢索到local storage或從localstorage檢索圖像。內容安全不是我想的問題。使用localStorage存儲和檢索PNG時的空白圖像
某處的代碼破壞了未正確存儲在本地存儲器中的圖像或未正確加載本地存儲器中的圖像。
下面是檢查圖像是否可從localstorage獲取的代碼。如果可以從會話中獲得,則從本地存儲中獲取。否則從URL中獲取並顯示圖像,並存儲在本地存儲中。
下面的代碼將得到執行,在pagebeforecreate
var dataImage = localStorage.getItem('ses_image');
var img = $('<img crossorigin="anonymous" width="100%" height="100%" id="img_menu-item" style="height: 100%;width:100%">');
jQuery('#pg_home_content').append(img);
if(dataImage){
bannerImg = document.getElementById('img_menu-item');
bannerImg.src = dataImage;
jQuery('#pg_home_content').append(bannerImg);
}else{
img.attr('src', 'http://example.com/myimage.png');
bannerImage = document.getElementById('img_menu-item');
bannerImage.setAttribute('crossOrigin', 'anonymous');
imgData = getBase64Image(bannerImage);
localStorage.setItem('ses_image', imgData);
}
getBase64Image
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL;
}
當我做console.log(dataURL)
它會產生下面的輸出,我想有些不妥......
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAABZUlEQVR4Xu3TQREAAAiEQK9/aWvsAxMw4O06ysAommCuINgTFKQgmAEMp4UUBDOA4bSQgmAGMJwWUhDMAIbTQgqCGcBwWkhBMAMYTgspCGYAw2khBcEMYDgtpCCYAQynhRQEM4DhtJCCYAYwnBZSEMwAhtNCCoIZwHBaSEEwAxhOCykIZgDDaSEFwQxgOC2kIJgBDKeFFAQzgOG0kIJgBjCcFlIQzACG00IKghnAcFpIQTADGE4LKQhmAMNpIQXBDGA4LaQgmAEMp4UUBDOA4bSQgmAGMJwWUhDMAIbTQgqCGcBwWkhBMAMYTgspCGYAw2khBcEMYDgtpCCYAQynhRQEM4DhtJCCYAYwnBZSEMwAhtNCCoIZwHBaSEEwAxhOCykIZgDDaSEFwQxgOC2kIJgBDKeFFAQzgOG0kIJgBjCcFlIQzACG00IKghnAcFpIQTADGE4LKQhmAMNpIQXBDGA4LQQL8oTPAGUY76lBAAAAAElFTkSuQmCC
第一次圖像被加載,從第二次以後,我得到一個空白圖像...不知道我失蹤了什麼?
在'console'登錄任何錯誤? – guest271314
@ guest271314不,控制檯上沒有錯誤。 – Malaiselvan
在調用'.toDataURL()'的時候嘗試不包含''image/png「'? – guest271314