我正在开发我的第一个Chrome扩展程序。目前,我尝试实现一个非常简单的功能,以了解它的工作原理并在此基础上构建更多内容。
现在,我想做的是创建一个扩展程序按钮,点击后打开一个带有文本框(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;
}
为了测试目的,我有一个addEventListener,用于插入一组文本值以确保插入函数有效。我有一个按钮用于硬编码的文本集合,然后另一个按钮尝试插入“保存”的文本,这应该是变量txtValue。
有效的插入函数
document.addEventListener('DOMContentLoaded', function() {
var temp = document.getElementById('template');
temp.addEventListener('click', function() {
insertText('Hard Coded Text');
message('Template Inserted');
});
});
插入函数尝试将输入并保存在文本区域字段中的值插入,但未能工作。
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('insert');
link.addEventListener('click', function() {
insertText(txtValue);
message('Saved Text Inserted');
});
});
我不确定我做错了什么。 我查看了很多不同的示例,大多数示例类似于我使用的storage.sync,但似乎无法使其工作。
非常感谢您的任何想法。
谢谢!
chrome.storage.sync.set
方法需要传入一个 JSON 对象,而不是一个简单的字符串值。具体请参考:https://developer.chrome.com/extensions/storage。 - Dan Smith