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更新。

很明显,您提供的代码不足以诊断问题。添加了大量相关代码。没有其他与消息属性相关的元素,因此省略号的任何实例只是省略了类似的消息值检查。您的问题可能在于达到同步存储速率限制-它们非常小。那么你的操作可能会失败。尝试使用相同的代码,将所有同步替换为本地。不幸的是,当所有同步实例都替换为本地时,问题仍然存在