我试图使用消息传递将一些数据从localStorage传递到我的内容。一切似乎都正确,但数据没有被传递。我已经设置了控制台写入来查看消息传递是否被触及,而不是。这是我第一次使用JavaScript,因此语法可能是错误的。Chrome扩展消息通过localStorage传递,值未定义
这里都是我跟在extenstion工作文件:
我试图使用消息传递将一些数据从localStorage传递到我的内容。一切似乎都正确,但数据没有被传递。我已经设置了控制台写入来查看消息传递是否被触及,而不是。这是我第一次使用JavaScript,因此语法可能是错误的。Chrome扩展消息通过localStorage传递,值未定义
这里都是我跟在extenstion工作文件:
它看起来像您可能使用sendRequest
,如果它是同步的。
function genericOnClick(info, tab) {
var sText = info.selectionText;
var daddr = sText.split(' ').join('+');
chrome.extension.sendRequest(
{method: "getLocalStorage", key: "saddr"},
function(response) {
var saddr = response.data;
var homeTxt = "http://maps.google.com/maps?" +
"saddr=" + saddr.split(' ').join('+') + "&daddr=";
var url = homeTxt + daddr;
chrome.tabs.create({url:url});
console.log("item " + info.menuItemId + " was clicked");
console.log("info: " + JSON.stringify(info));
console.log("tab: " + JSON.stringify(tab));
}
);
}
我了解http://code.google.com/chrome/extensions/messaging.html上的解释的方式是,我可以向background.html发送请求,并通过回复发送background.html回复。这就是为什么我很困惑,为什么它不工作。 – Sterfry1988
我继续并修改了我的脚本。你可以在这里看到修改后的版本:https://gist.github.com/1369092。运行脚本时,消息传递中不会发生任何事情。控制台仅显示“鼠标点击”操作。有什么想法吗? – Sterfry1988
@ Sterfry1988,如果您在background.html的第3行之前登录会发生什么?你收到*任何*吗? – strager
您的链接标题不注重细节。 *(我修改它以增加清晰度。)* – ChaosPandion
修改后,希望有所帮助。 – Sterfry1988