内容脚本消息发送:
$(document).ready(function() {
chrome.runtime.sendMessage({
action: 'Action',
actType: 'Type',
value: 1
});
...
在下面的函数中,我能够获取request.action和request.value的值,但request.actType始终返回undefined。我怎样才能获得actType的值?
//Background script
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
...
} else if (request.action == 'GainXP') {
chrome.storage.sync.get('X', function(result) {
addType(String(request.actType));
var x = parseInt(result.X);
x += parseInt(request.value);
chrome.storage.sync.set({'X': x}, function() {
chrome.runtime.sendMessage({
action: 'CheckX'
});
});
});
}
...
function addType(x) {
if (typeof x === undefined) {
return;
} else {
if (x == "Type1") {
chrome.storage.sync.get('type1count', function(result) {
var newtypes = parseInt(result.type1count) + 1;
chrome.storage.sync.set({'type1count': newtypes}, function() {});
return;
});
}
编辑:添加了更多相关代码,以帮助理解问题的背景。此外,如果我在addType调用之前和addType调用之后插入警报,则只执行第一个警报。
答案 0 :(得分:0)
我想出了这个问题。我的清单引用了一个较旧的缩小内容脚本,该脚本没有正确设置actType消息值。接下来,我不得不重新安排我的存储回调,所有相关数据都在使用chrome.storage.sync进行更新。