Как я могу предоставить ссылку внутри моего скрипта greasemonkey для резервного копирования базы данных GM-value?


В настоящее время я использую GM_setValue и GM_getValue для хранения данных в userscript, который я сделал в Greasemonkey. Я хотел бы иметь возможность легко сохранять данные в базе данных sqlite, в которой GM хранит все данные, из самого скрипта.

Для exmaple создайте ссылку с надписью "резервное копирование данных" в правом верхнем углу страницы. При нажатии, он будет загружать либо .SQLite файл напрямую, или JSON.stringify () ' d его значение.

Возможно ли это? Я попытался перенять код отсюда: создать текстовый файл на JavaScript но это уродливо как грех, массовая халтура, и требует использования unsafeWindow.open (), который я не могу себе представить, будет масштабироваться хорошо, когда/если у меня будет строка JSON длиной 100k символов

1 4

1 ответ:

U может создать загружаемый файл таким образом

function download(filename, text) {
  var element = document.createElement('a');
  element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
  element.setAttribute('download', filename);

  element.style.display = 'none';
  document.body.appendChild(element);

  element.click();
  document.body.removeChild(element);
}

Вы можете вызвать эту функцию

download('filename.sqlite', 'your-db');