javascript - 将页面保存到 chrome.storage.sync
问题描述
我正在制作一个 chrome 扩展来保存和加载网页。(例如,您想在页面被更改之前存储它,或者您自己修改了该页面并想要保存它)。
我现在所做的是我在 activetab 中运行代码,以使用页面 URL 的键将页面的 innerHTML 保存在 localstorage 中。
'use strict';
let saveButton = document.getElementById('saveButton');
saveButton.onclick = function(element) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(
tabs[0].id,
{code: 'localStorage[window.location.href] = document.documentElement.innerHTML;'});
});
};
let loadButton = document.getElementById('loadButton');
loadButton.onclick = function(element) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(
tabs[0].id,
{code: 'document.documentElement.innerHTML = localStorage[window.location.href];'});
});
};
这工作正常,但我希望它chrome.storage.sync
能够同步到用户的 Google 帐户。
(如果它使用它的 url 作为键,这也不会干扰页面)
我怎样才能做到这一点?
我尝试chrome.storage.sync.set
在选项卡内部使用,但这不起作用(我假设它必须以某种方式在 popup.js 中完成
谢谢。
解决方案
这不是执行此操作的适当方法。chrome.storage.sync
有很大的限制。
推荐阅读
- php - 上传文件名的PHP Laravel编码问题
- tensorflow - 带有 keras、tensorflow 的神经网络 InvalidArgumentError
- excel - 如何引用两个单独的范围?
- ansible - 仅更改文件的权限
- sql - 你能重写NVL函数吗?
- php - 时间戳字段按照我的本地时区存储,但在 laravel 中用 shift -3 小时检索
- nestjs-swagger - 我们如何使用 swagger/nestjs 在 API 文档中添加一些自定义错误(相关键)?
- java - 如何将两个 json 元素转换为一个具有第一个名称和第二个值的元素
- python - 如何在 Matplotlib 中绘制“弧”角符号?
- apache-kafka - 尽管我正在设置优化属性,但 Kafka 流应用程序仍在尝试创建更改日志主题