Javascript 从本地存储打印对象
我有一个费用表,可以将数据保存到浏览器的本地存储中。我在表格下方的页面上有一个按钮,这样在您填写表格后,您就可以单击以一种好的格式打印数据 由于我的应用程序的功能,我必须在本地存储中使用JSON数据 我正在使用js变量从本地存储中获取数据:Javascript 从本地存储打印对象,javascript,html,json,printing,printjs,Javascript,Html,Json,Printing,Printjs,我有一个费用表,可以将数据保存到浏览器的本地存储中。我在表格下方的页面上有一个按钮,这样在您填写表格后,您就可以单击以一种好的格式打印数据 由于我的应用程序的功能,我必须在本地存储中使用JSON数据 我正在使用js变量从本地存储中获取数据: var my_expenses = localStorage.getItem('my_expenses'); 这是“我的浏览器本地存储”中的条目,带有未统一的值 关键:我的费用 价值: 根据Print.js,您可以像这样打印JSON数据(包括我的变量和我的
var my_expenses = localStorage.getItem('my_expenses');
这是“我的浏览器本地存储”中的条目,带有未统一的值
关键:我的费用
价值:
根据Print.js,您可以像这样打印JSON数据(包括我的变量和我的本地存储数据):
我想这可能是本地存储中JSON的结构?。任何帮助都将不胜感激
尝试使用JSON.parse()如下所示: 在添加JSON解析之前。我得到了wrror,这是控制台中本地存储的输出 在我添加后,这是输出,打印按钮似乎起作用: 但是打印对话没有数据
对象的创建方式和本地存储功能:
//Set the default incomes and outgoings here
var defaultsObj = {
'income':{
1:{name:"Pay (after tax)",freq:52,value:0},
2:{name:"Partners take home pay",freq:4,value:0},
3:{name:"Bonuses/overtime",freq:26,value:0},
4:{name:"Income from savings and investments",freq:1,value:0},
5:{name:"Child support received ",freq:12,value:0}
},'outgoings':{
1:{name:"Electricity",freq:4,value:0},
2:{name:"Gas",freq:4,value:0},
3:{name:"Water",freq:4,value:0},
4:{name:"Internet",freq:4,value:0},
5:{name:"Telephone",freq:4,value:0},
6:{name:"Car Insurance",freq:1,value:0}
}
};
//Functions to store and retrieve objects from localstorage
function ls_store(name,o){
localStorage.setItem(name, JSON.stringify(o));
};
function ls_read(name){
return JSON.parse(localStorage.getItem(name));
};
function set_defaults(){
ls_store('my_expenses',defaultsObj);
expensesObj = ls_read('my_expenses');
}
//If our localstroage items are empty let's store the defaults
if(ls_read('my_expenses')==null){
set_defaults();
}
您不保存数组,printjs等待数组 尝试保存到两个不同的数组中,首先,将结果保存到pdf中
如果第一个数组显示数据,则必须:调用两次printjs,一次用于第一个数组,另一次用于第二个数组,或者将这两个数组合并为一个数组,如果是incombe或output,则可能会在disting中添加属性 您不保存数组,printjs等待数组 尝试保存到两个不同的数组中,首先,将结果保存到pdf中
如果第一个数组显示数据,则必须:调用两次printjs,一次用于第一个数组,另一次用于第二个数组,或者将这两个数组合并为一个数组,如果是incombe或output,则可能会在disting中添加属性 尝试使用JSON.parse(localStorage.getItem(“my_expenses”)?嘿,chris,试过了buddy会用输出更新主要答案,虽然有点效果,但不完全。您是否尝试使用:localStorage.setItem('my_expenses',JSON.stringify(my_expenses_object))?是的,就像那样设置你是如何存储我的物品的?它是一个数组吗?printJS正在等待一个数组,但您的localStorage似乎有一个JSON对象尝试使用JSON.parse(localStorage.getItem(“my_expenses”)?嘿,chris,试过了buddy会用输出更新主要答案,虽然有点效果,但不完全。您是否尝试使用:localStorage.setItem('my_expenses',JSON.stringify(my_expenses_object))?是的,就像那样设置你是如何存储我的物品的?它是一个数组吗?printJS正在等待阵列,但您的本地存储似乎有一个JSON对象嘿Chris我只想感谢您花时间帮助我,我真的很感激。嘿Chris我只想感谢您花时间帮助我,我真的很感激。
<button type="button" onclick="printJS({printable: my_expenses, properties: ['name', 'freq', 'value'], type: 'json'})">
Print JSON Data
Uncaught Error: Missing printable information.
at init (print.min.js:1)
at HTMLButtonElement.onclick ((index):156)
var my_expenses = JSON.parse(localStorage.getItem("my_expenses"));
//Set the default incomes and outgoings here
var defaultsObj = {
'income':{
1:{name:"Pay (after tax)",freq:52,value:0},
2:{name:"Partners take home pay",freq:4,value:0},
3:{name:"Bonuses/overtime",freq:26,value:0},
4:{name:"Income from savings and investments",freq:1,value:0},
5:{name:"Child support received ",freq:12,value:0}
},'outgoings':{
1:{name:"Electricity",freq:4,value:0},
2:{name:"Gas",freq:4,value:0},
3:{name:"Water",freq:4,value:0},
4:{name:"Internet",freq:4,value:0},
5:{name:"Telephone",freq:4,value:0},
6:{name:"Car Insurance",freq:1,value:0}
}
};
//Functions to store and retrieve objects from localstorage
function ls_store(name,o){
localStorage.setItem(name, JSON.stringify(o));
};
function ls_read(name){
return JSON.parse(localStorage.getItem(name));
};
function set_defaults(){
ls_store('my_expenses',defaultsObj);
expensesObj = ls_read('my_expenses');
}
//If our localstroage items are empty let's store the defaults
if(ls_read('my_expenses')==null){
set_defaults();
}