我正在尝试记录为我加载的每个页面发出的所有请求。以下是manifest.json
和background.js
文件。
manifest.json:
{
"name": "Requests",
"version": "1.0",
"description": "Log Requests",
"permissions": ["webRequest",
"webRequestBlocking",
"tabs",
"<all_urls>"],
"background": {
"scripts": ["background.js"]
},
"manifest_version": 2
}
background.js:
var url = ''
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
url = tabs[0].url;
});
chrome.webRequest.onBeforeRequest.addListener(
function(info) {
console.log("Request for " + url + ': --> ' + info.url);
},
// filters
{
urls: ["<all_urls>"]
},
// extraInfoSpec
["blocking"]);
我遇到的问题是url
内的background.js
参数始终包含chrome://extension/
,无论我加载哪个页面。我不明白为什么会发生这种情况。我尝试使用window.location
给我当前的网址,但那也会返回相同的值。有人可以帮忙吗?
答案 0 :(得分:0)
所以,这是一个有效的解决方案。我唯一做的就是将chrome.tabs.query
方法放在onBeforeRequest
的回调中,以便每次收到请求时触发它(因此url也会更新)。
var url = ''
var callbackOnRequest = function(info) {
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
if (tabs[0] != undefined){
url = tabs[0].url;
}
});
console.log("Request for " + url + ': --> ' + info.url);
}
var filters = {
urls: ["<all_urls>"]
};
var extraInfoSpec = ["blocking"];
chrome.webRequest.onBeforeRequest.addListener(callbackOnRequest, filters, extraInfoSpec);
答案 1 :(得分:-2)
您可以通过 background.js
中的chrome.windows.WINDOW_ID_CURRENT函数获取每个请求网址react-native-webrtc