我已在本地保存了一些图像,然后想要阻止所有请求,检查本地存储中是否有副本,然后根据搜索结果决定发送原始请求或重定向到本地文件,如果我已经有副本。
我使用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请求?我认为它们在某种程度上相同。