我正在开发一个Chrome扩展程序,其工作流程如下:
两个问题:
对于1,我计划使用chrome.storage.local
。
对于2,目前尚不清楚最佳方法是什么。我正在考虑将数据写入options.html或popup.html,然后调用chrome.downloads
下载该页面,但这感觉像是一大堆黑客。
做1和2的正确方法是什么?
答案 0 :(得分:2)
chrome.storage.local
。 /**
* @param data {String} what to save
* @param extension {String} file extension
*/
function saveFile(data, extension = 'json') {
const fileName = `export-file.${extension}`;
const textFileAsBlob = new Blob([data], {type: 'text/plain'});
const downloadLink = document.createElement('a');
downloadLink.download = fileName;
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.target = '_blank';
downloadLink.click();
return fileName;
}
它将保存文件到磁盘。而且这不是一种骇人听闻的方式。
更新#2
另一种方法是将base64 URL传递到下载API:
chrome.downloads.download({url: 'data:image/gif;base64,SEVMTE8gV09STEQh', filename: 'test.txt'})