Javascript 在localstorage中保存src属性的内容

Javascript 在localstorage中保存src属性的内容,javascript,jquery,html,local-storage,Javascript,Jquery,Html,Local Storage,我正在开发一个在线操作系统 我想将应用程序图标保存在localstorage中,但我不知道如何将src属性的内容保存在localstorage中,并在应用程序页面上再次读取。我当前的代码会导致一个空白页。据我所知,没有办法做到这一点。可以保存到本地存储的所有内容都必须由变量引用。调用localStorage.setItem方法时,该值将转换为字符串格式 localStorage.setItem('my', {a: 1}); console.log(localStorage['my']); //

我正在开发一个在线操作系统
我想将应用程序图标保存在localstorage中,但我不知道如何将src属性的内容保存在localstorage中,并在应用程序页面上再次读取。我当前的代码会导致一个空白页。

据我所知,没有办法做到这一点。可以保存到本地存储的所有内容都必须由变量引用。调用localStorage.setItem方法时,该值将转换为字符串格式

localStorage.setItem('my', {a: 1});

console.log(localStorage['my']); // you will get a string value: '[object Object]'

您只是想保存源URL吗?还是图像内容

您可以通过以下方式保存源URL:

var theImage = document.getElementById('my-special-image');
if (window.localStorage) {
     window.localStorage['theImage_src'] = theImage.src;
}
如果要保存图像的内容,则必须使用
canvas.toDataURL()
。有关如何操作的更多信息,请参阅。

图标是用户提供的还是您自己的?无论哪种情况,都可以将应用程序图标转换为base64。然后将其插入本地存储。当然,您必须对要存储的数据进行字符串化

var base64 = localStorage.getItem('icon_name');
$('#imgid').attr('src', base64);

实际上,您可以通过JSON编码来保存对象。一些浏览器支持
JSON.stringify
JSON.parse
。我相信这是IE8、Opera 10.50、Firefox 3.5、Safari 4.0.3和Chrome所固有的。如果浏览器不是本机的,也有各种库提供这种功能。另请参见我的意思,即设置为localstorage的所有内容都将转换为字符串格式。当然,如果愿意的话,您可以将对象字符串化为字符串格式。此外,您可能希望通过您的问题来了解CSS精灵。