如何阻止Web请求并根据来自content.js的消息在Chrome扩展程序中发送或重定向请求?

时间:2013-04-11 02:55:38

标签: google-chrome google-chrome-extension

我已在本地保存了一些图像,然后想要阻止所有请求,检查本地存储中是否有副本,然后根据搜索结果决定发送原始请求或重定向到本地文件,如果我已经有副本。

我使用background.js中的chrome.webRequest.onBeforeRequest来阻止请求,然后使用Message Passing将url发送到content.js以进行检查。但是,当background.js从content.js收到结果时,HTTP请求已经发送。我想知道是否可以阻止并根据搜索结果继续或重定向?谢谢!

background.js:

//Blocking the request
chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
        //message pasing with content.js
        chrome.tabs.sendMessage(details.tabId, {url: details.url}, function(response) {
            if (response.searchResult == false) {
                return {redirectUrl: response.searchResult};
            } else {
                return {requestHeaders:details.requestHeaders};
            }
        });
    },
    {urls: ["http://localhost/*", "https://localhost/*"]},
    ["blocking"]
);

P.S。:也许我需要的是Chrome扩展程序中的同步消息传递。如果没有这样的API(据我所知),代理扩展如何根据用户列表重定向Web请求?我认为它们在某种程度上相同。

0 个答案:

没有答案