javascript - 带有 localStorage 的 jQuery 图片 uploader 。部分工作。默认图片不显示

标签 javascript jquery local-storage

我正在为公司控制面板开发管理功能。我尝试创建的小部件是供管理员用他们自己的公司 Logo 替换控制面板上的默认 Logo 。

我正在使用 localStorage 进行概念验证,但它会在生产时保存到数据库和 CMS 中。

我具备上传新图像/ Logo 和替换默认图像/ Logo 的基础知识。但是,我们在控制面板标题中预先植入了“开箱即用”的默认 Logo 。出于某种原因,默认 Logo 在首次加载页面时不显示。你目前得到一个破损的图像图标。上传新图片后,它会替换标题 Logo 并在管理小部件中保留当前选择。

如果您刷新页面,它会从工作正常的 localStorage 中调用它,但如果您重置,您会注意到预置 Logo 不会出现。

var img = new Image();
img.src = localStorage.theImage;

$('.logoArea').html(img);
$("body").on("change", ".uploadLogo", function() {
    var fileInput = $(this)[0];
    var file = fileInput.files[0];

    var reader = new FileReader();
    reader.onload = function(e) {
        // CREATE A NEW IMAGE
        var img = new Image();

        img.src = reader.result;
        localStorage.theImage = reader.result; // STORE IMAGE IN LOCAL STORAGE
        $(".logoArea").html(img);
    }
    reader.readAsDataURL(file);
});

不确定我哪里出错了。请查看工作模型的 fiddle

Update: This was resolved and I updated fiddle below to working version in case it helps anyone else out.

https://jsfiddle.net/evmcatj1/7/

最佳答案

第一次加载 localStorage.theImage;undefined 你应该使用默认图片以防用户第一次打开页面

关于javascript - 带有 localStorage 的 jQuery 图片 uploader 。部分工作。默认图片不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29832048/

相关文章:

javascript - 使用 javascript 上传之前获取文件大小

javascript - 如何设置ArrayController内容中的属性

jquery - 在 jquery 中提交后清除表单输入字段

html - HTML5 Localstorage 在移动应用程序中存储离线数据的可靠性

javascript - 调整窗口大小时如何抵消抓取效果?

javascript - 如果删除节点然后重新添加,Firebase 查询不会推送数据

javascript - 键入时将字符更改为星号

javascript - jquery 中未捕获的语法错误 : Unexpected token .

javascript - 如何查看javascript HTML5 localstorage?

javascript - 检索本地存储时如何获取键值