Javascript 某些消息值始终未定义
内容脚本消息发送:Javascript 某些消息值始终未定义,javascript,google-chrome-extension,Javascript,Google Chrome Extension,内容脚本消息发送: $(document).ready(function() { chrome.runtime.sendMessage({ action: 'Action', actType: 'Type', value: 1 }); ... 在下面的函数中,我可以获得request.action和request.value的值,但是request.actType总是返回未定义的值。如何获取actType的值 //Background script chro
$(document).ready(function() {
chrome.runtime.sendMessage({
action: 'Action',
actType: 'Type',
value: 1
});
...
在下面的函数中,我可以获得request.action和request.value的值,但是request.actType总是返回未定义的值。如何获取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调用之后插入警报,则只执行第一个警报。我发现了问题所在。我的清单引用了一个旧的缩小内容脚本,该脚本没有正确设置actType消息值。之后,我不得不重新排序存储回调,所有相关数据都将用chrome.storage.sync更新。很明显,您提供的代码不足以诊断问题。添加了大量相关代码。没有其他与消息属性相关的元素,因此省略号的任何实例只是省略了类似的消息值检查。您的问题可能在于达到同步存储速率限制-它们非常小。那么你的操作可能会失败。尝试使用相同的代码,将所有同步替换为本地。不幸的是,当所有同步实例都替换为本地时,问题仍然存在