在 webRequest 目标中是否可以有多个 URL
Is it possible to have more than one URL in the webRequest target
是否可以在 webRequest 的 urls 参数中有多个目标。如何?
这是一个不起作用的例子,给我这个错误:
The webRequest.addListener filter doesn't overlap with host permissions.
****更新****:
这是示例代码main.js
:
myArray=["yahoo.com", "google.co.uk"];
patterns=[];
for (var x=0; x<myArray.length; x++)
{
var aURL="\"https://*."+myArray[x]+"/*\""
patterns.push(aURL);
}//end for
console.log("the array: "+patterns);
function logURL(requestDetails)
{
console.log("inside logURL");
console.log("*******************************");
console.log("Loading: " + requestDetails.url);
console.log("*******************************");
}//end logUTL
browser.webRequest.onBeforeRequest.addListener(
logURL,
{urls: patterns,
types: ["main_frame"]}
);
这是清单:
{
"manifest_version": 2,
"name": "test",
"version": "1.0",
"description": "",
"background": {
"scripts": ["main.js"]
},
"icons": {
"64": "icons/myicon.png"
},
"permissions":[
"<all_urls>",
"activeTab",
"tabs",
"activeTab",
"webRequest"
]
}
您必须为模式使用数组。
myArray=["yahoo.com", "google.co.uk"];
patterns=myArray.map(item=>`https://*.${item}/*`)
console.log("the array: "+patterns);
function logURL(requestDetails)
{
console.log("inside logURL");
console.log("*******************************");
console.log("Loading: " + requestDetails.url);
console.log("*******************************");
}//end logUTL
browser.webRequest.onBeforeRequest.addListener(
logURL,
{urls: patterns,
types: ["main_frame","xmlhttprequest"]}
);
addListener
的第二个参数是一个RequestFilter.
有什么理由要加双引号吗?
-var aURL="\"https://*." + myArray[x] + "/*\""
+var aURL="https://*." + myArray[x] + "/*"
是否可以在 webRequest 的 urls 参数中有多个目标。如何?
这是一个不起作用的例子,给我这个错误:
The webRequest.addListener filter doesn't overlap with host permissions.
****更新****:
这是示例代码main.js
:
myArray=["yahoo.com", "google.co.uk"];
patterns=[];
for (var x=0; x<myArray.length; x++)
{
var aURL="\"https://*."+myArray[x]+"/*\""
patterns.push(aURL);
}//end for
console.log("the array: "+patterns);
function logURL(requestDetails)
{
console.log("inside logURL");
console.log("*******************************");
console.log("Loading: " + requestDetails.url);
console.log("*******************************");
}//end logUTL
browser.webRequest.onBeforeRequest.addListener(
logURL,
{urls: patterns,
types: ["main_frame"]}
);
这是清单:
{
"manifest_version": 2,
"name": "test",
"version": "1.0",
"description": "",
"background": {
"scripts": ["main.js"]
},
"icons": {
"64": "icons/myicon.png"
},
"permissions":[
"<all_urls>",
"activeTab",
"tabs",
"activeTab",
"webRequest"
]
}
您必须为模式使用数组。
myArray=["yahoo.com", "google.co.uk"];
patterns=myArray.map(item=>`https://*.${item}/*`)
console.log("the array: "+patterns);
function logURL(requestDetails)
{
console.log("inside logURL");
console.log("*******************************");
console.log("Loading: " + requestDetails.url);
console.log("*******************************");
}//end logUTL
browser.webRequest.onBeforeRequest.addListener(
logURL,
{urls: patterns,
types: ["main_frame","xmlhttprequest"]}
);
addListener
的第二个参数是一个RequestFilter.
有什么理由要加双引号吗?
-var aURL="\"https://*." + myArray[x] + "/*\""
+var aURL="https://*." + myArray[x] + "/*"