为什么chrome.storage.local.get无法及时执行?

时间:2017-01-03 10:14:35

标签: javascript google-chrome

我正在为Chrome编写扩展程序,我希望通过此插件我可以修改Chrome HTTP请求标头 所以我希望用户能够自定义他们的头,然后当chrome发送HTTP请求时,首先拦截请求,然后为用户自定义配置,根据配置修改请求头,然后发送。
但是在这个过程中,我遇到了一些问题,当我截获chrome请求时,我会得到这次用户配置,但似乎得到用户配置需要一些时间,总是当HTTP请求有访问用户配置时离开了,我不知道。如何让用户访问此操作的配置被阻止,只有当它完成后才会拦截HTTP请求以便放手 这是拦截HTTP请求的代码: (请原谅我可怜的英语:P,非常感谢〜)



chrome.webRequest.onBeforeSendHeaders.addListener(function(details){
  var headers = details.requestHeaders,
  blockingResponse = {};
  // now I am trying to modify blockingRequest
  chrome.storage.local.get(null, function(results) {
    for(var result in results){
      headers.push({"name":result, "value":results[result]});
    }
  }); // but the code above is useless.
  // if you print the new headers , you will find the new headers doesn't change.
  blockingResponse.requestHeaders = headers;
  return blockingResponse;
},
{urls: [ "<all_urls>" ]},['requestHeaders','blocking']);
&#13;
&#13;
&#13;

0 个答案:

没有答案