我是一名JavaScript初学者,对于我的第一个项目,我以为我会写一个有用的chrome扩展,但是,我坚持如何将数据从chrome扩展选项页面发送到正在运行的javascript页面。
在options.js
中。
我已经成功地使用以下方法从存储中成功添加和检索值:
chrome.storage.local.set(obj)
chrome.storage.local.get(obj)
只要我在同一js文件-options.js
中存储和检索,它就可以正常工作。
我已将用于从options.js
中检索值的同一块复制到content.js
中,但是该值在chrome js调试器中始终显示为undefined
。为了我的一生,我不知道如何在options.js
中设置值并在content.js
中检索它
我究竟做错了什么?我不能在chrome.storage.local.set(obj)
中运行options.js
,然后在chrome.storage.local.get(obj)
中运行content.js
来提取值吗?
这是一个代码片段,向您展示我在做什么:
文本框ID为name
,位于
options.js
:
function saveTextbox(txtboxId) {
var theValue = document.getElementById(txtboxId).value;
var obj = {};
obj[txtboxId] = theValue;
storage.set(obj);
}
在content.js
中:
function getValue(textboxId) {
storage.get(textboxId, function(result) {
return result.name;
});
}
任何有关进行方法的建议将不胜感激。
答案 0 :(得分:0)
感谢@wOxxOm,我现在知道这是一个异步调用,这就是为什么它不起作用的原因:
function getValue(textboxId) {
storage.get(textboxId, function(result) {
return result.name; << this is the problem
});
}