Google chrome extension CHROME WebRequest API示例错误:";onBeforeRequest“;只能在扩展过程中使用

Google chrome extension CHROME WebRequest API示例错误:";onBeforeRequest“;只能在扩展过程中使用,google-chrome-extension,webrequest,Google Chrome Extension,Webrequest,我尝试测试一个示例,但抛出错误: “onBeforeRequest”只能在扩展过程中使用。 manifest.json: foo.js就是示例1Chrome扩展函数(包括WebRequestAPI)不能在内容脚本中使用(foo.js)。如果希望从内容脚本使用webRequest,则可以使用该功能与扩展的用户对话。后台页面可以直接使用webRequest,并将响应(如果有)中继回内容脚本。您需要在清单文件中添加后台页面,并在清单中添加相应的权限,以便后台页面可以访问webRequest API。请

我尝试测试一个示例,但抛出错误:

“onBeforeRequest”只能在扩展过程中使用。 manifest.json:


foo.js
就是示例1

Chrome扩展函数(包括WebRequestAPI)不能在内容脚本中使用(
foo.js
)。如果希望从内容脚本使用webRequest,则可以使用该功能与扩展的用户对话。后台页面可以直接使用webRequest,并将响应(如果有)中继回内容脚本。

您需要在清单文件中添加后台页面,并在清单中添加相应的权限,以便后台页面可以访问webRequest API。请参见此示例:

正如Mihai提到的,如果需要让内容脚本执行操作,请查看以下页面:

将其添加到内容脚本中(您可以将问候语更改为动作,并将问候语更改为背景脚本应执行的动作):

将此添加到您的背景页面(如果语句和PEF根据消息形成不同的操作,您可以这样做):


非常感谢。我有点太快了,无法尝试这些API。。。甚至连文件都没读过。。。“现在它可以正常工作了。”Huang,Chrome的文档团队需要从PHP文档中学习,这些文档是以真正合适的教程风格编写的。
{
    "name": "example",
   "version": "1.0",
  "permissions": [
    "experimental",
    "http://*/*", "https://*/*"
  ],
    "content_scripts": [ {
      "js": [ "foo.js" ],
      "matches": [ "http://*/*", "https://*/*" ],
      "run_at": "document_start"
   } ]
}
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
   console.log(response.farewell);
});
chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    console.log(sender.tab ?
                "from a content script:" + sender.tab.url :
                "from the extension");
    if (request.greeting == "hello")
      sendResponse({farewell: "goodbye"});
  });