Chrome扩展程序 - 保存设置

use*_*652 2 javascript google-chrome google-chrome-extension

我正在构建我的第一个Chrome扩展程序.这是一个非常简单的事情,我正在努力做到这一点,所以我可以尝试了解它是如何工作的,并建立起来.

无论如何我现在要做的是我有一个扩展按钮,打开一个带有TEXTAREA的页面.我希望用户能够在此textarea框中输入文本并保存以便稍后调用(此设置也需要在下次Chrome打开时再次调用,无论他们进入此文本框我想保留永久价值,除非他们保存它).

我的TEXTAREA id = test1

这是我的JavaScript

function saveSettings() {
    var storage = chrome.storage.sync;

    // Get signature value from text box
    var txtValue = test1.value;

    // Save using Chrome storage API
    storage.set(txtValue, function() {
        console.log("Saved");
    });
}

function insertText(text) {
      document.getElementById("test1").value= text;
}
Run Code Online (Sandbox Code Playgroud)

出于测试目的,我有一个addEventListener,用于插入set文本值以确保insert函数有效.我有一个用于硬编码文本集的按钮,然后是另一个按钮,用于尝试插入应该是var txtValue的"已保存"文本.

WORKS的插入功能

document.addEventListener('DOMContentLoaded', function() {
    var temp = document.getElementById('template');
    temp.addEventListener('click', function() {
        insertText('Hard Coded Text');
    message('Template Inserted');

    });
});
Run Code Online (Sandbox Code Playgroud)

插入函数不起作用,试图插入键入的值并保存到TEXTAREA字段中.

document.addEventListener('DOMContentLoaded', function() {
    var link = document.getElementById('insert');
    link.addEventListener('click', function() {
        insertText(txtValue);
    message('Saved Text Inserted');

    });
});
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么.我看了一堆不同的例子,其中大部分与我使用storage.sync所做的相似,但我似乎无法让它工作.

任何想法将不胜感激.

谢谢!

gre*_*oul 8

保存

chrome.storage.sync.set({ mytext: txtValue });
Run Code Online (Sandbox Code Playgroud)

要得到

chrome.storage.sync.get('mytext', function(data) {
    yourTextArea.value = data.mytext;
});
Run Code Online (Sandbox Code Playgroud)

我找到了一个用Promise调用chrome存储的新库,非常酷.

https://github.com/Selection-Translator/chrome-call

import { scope } from 'chrome-call'

const storage = scope('storage.local')
storage('get', 'flows').then(data => initFlows(data.flows))
Run Code Online (Sandbox Code Playgroud)

  • 只需添加:使用`chrome.storage`需要`manifest.json`中的`storage`权限:https://developer.chrome.com/extensions/storage (2认同)