复制整个网站的localstorage到剪贴板

发表于:2024-04-24 16:57
技术,调试,浏览器
热度:164
喜欢:0

项目需要,本地子项目需要拷贝主项目的localstorage,粘贴到本地dev项目的命名空间中

javascript 复制代码
// 复制localStorage到剪贴板的方法
function copyLocalStorageToClipboard() {
  const keys = Object.keys(localStorage);
  let dataToCopy = '';
  keys.forEach(key => {
    dataToCopy += `${key}: ${localStorage.getItem(key)}\n`;
  });

  navigator.clipboard.writeText(dataToCopy).then(() => {
    alert('localStorage数据已复制到剪贴板');
  }).catch(err => {
    console.error('无法复制数据到剪贴板: ', err);
  });
}

// 从剪贴板粘贴到localStorage的方法
function pasteFromClipboardToLocalStorage() {
  return navigator.clipboard.readText().then(
    clipText => {
      const lines = clipText.split('\n');
      lines.forEach(line => {
        const [key, value] = line.split(': ');
        if (key && value) {
          localStorage.setItem(key, value);
        }
      });
      alert('剪贴板数据已粘贴到localStorage');
    },
    err => {
      console.error('无法从剪贴板读取数据: ', err);
    }
  );
}

// 创建复制按钮并绑定点击事件
const copyBtn = document.createElement('button');
copyBtn.innerText = '复制localStorage到剪贴板';
copyBtn.style.marginLeft = '10px'; // 为了美观,可以添加一些样式
copyBtn.onclick = copyLocalStorageToClipboard;

// 创建粘贴按钮并绑定点击事件
const pasteBtn = document.createElement('button');
pasteBtn.innerText = '从剪贴板粘贴到localStorage';
pasteBtn.style.marginLeft = '10px';
pasteBtn.onclick = () => pasteFromClipboardToLocalStorage().catch(err => console.error(err));

// 将按钮插入到body的最前面
document.body.insertBefore(copyBtn, document.body.firstChild);
document.body.insertBefore(pasteBtn, document.body.firstChild);