我有一个简单的项目,其中有一些组合框,可以将值设置为localStorage(39个组合框)。我找到了一种将整个localStorage复制到剪贴板的方法
// копирование всего localStorage в буфер обмена
async function copyJson() {
try {
await navigator.clipboard.writeText(
JSON.stringify(localStorage)
);
console.log('Content copied to clipboard');
/* Resolved - text copied to clipboard successfully */
} catch (err) {
console.error('Failed to copy: ', err);
/* Rejected - text failed to copy to the clipboard */
}
}
然后,我可以清除本地存储:
// полная очистка localStorage
function clearJson() {
localStorage.clear();
}
现在这是明确的,我需要从剪贴板粘贴数据,这可能看起来像这样:
{"postval":"Пусто","kuzval1":"Пусто","kuzparkval11":"Пусто"}
我试着用这个代码:
// вставка localStorage (В разработке!)
var raw = navigator.clipboard.readText(JSON.stringify())
// This will check if raw is valid JSON
async function loadJson(){
try {
localStorage.setItem(raw,raw);
}
catch (e) {
// show error to user
}
}
但它并没有粘贴值和键,而是存储了以下内容:
{"[object Promise]":"[object Promise]"}
我怎样才能克服这个问题?
1条答案
按热度按时间ygya80vv1#
readText
已经返回了一个字符串,所以你不需要字符串化,而且setItem一次只能设置一个字符串键,所以你需要遍历你的数据,一个一个地设置。