javascript - 如何将用户的图像设置为 chrome 扩展的背景
问题描述
所以,这个选项应该做的是让用户上传一个文件(一个图像)<input id="background-image" type=file></input>
(这个工作)但是当用户打开一个新选项卡或关闭当前选项卡时,我如何让背景图像保持不变。
这是设置背景图像的JS:
document.getElementById('background-image').addEventListener('change', readURL, true);
function readURL(){
var file = document.getElementById("background-image").files[0];
var reader = new FileReader();
var readFile = reader.readAsDataURL(file);
reader.onloadend = function(){
document.getElementById("main-background-image").style.backgroundImage = "url(" + reader.result + ")";
}
if(file){
reader.readAsDataURL(file);
}else{
}
}
只要用户不点击离开,这再次为当前选项卡设置图像。是否可以保留用户的背景图像以供将来和其他选项卡使用?
解决方案
我的解决方案基于另一个 stackoverflow 问题: 将上传的图像保存到 localStorage (chrome extension)
var input = document.getElementById('getval');
input.onchange = function(evt){
var tgt = evt.target || window.event.srcElement,
files = tgt.files;
if (FileReader && files && files.length) {
var fr = new FileReader();
fr.onload = function () {
localStorage['foo'] = fr.result;
}
fr.readAsDataURL(files[0]);
}
}
在我插入这段代码之后:
window.onload=function(){
var el = document.querySelector('body');
el.style.backgroundImage = 'url(' + localStorage['foo'] + ')';
推荐阅读
- javascript - 如何过滤掉包含最多另一个数字的数字的div?
- elasticsearch - logstash 无法将类型完成解析为数字
- c - 链表 - Free() 节点导致程序崩溃
- c# - 创建基于内容缩放的 UWP 语音气泡控件
- python - 如何在python中导入文件?
- java - Spring Boot 中 @Scheduled 的动态配置
- python - 编写数据刮板的问题
- javascript - React js中的按钮数组
- python - Python 3.6 字符串输入
- codeigniter - 我在 codeigniter 中以三种方式检索表单输入?哪一个是正确的方式