Firefox webRequest目标中是否可能有多个URL
webRequest中的URL参数中是否可能有多个目标。怎么做 这是一个不起作用的示例,给了我以下错误:Firefox webRequest目标中是否可能有多个URL,firefox,firefox-addon,firefox-addon-webextensions,Firefox,Firefox Addon,Firefox Addon Webextensions,webRequest中的URL参数中是否可能有多个目标。怎么做 这是一个不起作用的示例,给了我以下错误: 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++) {
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"]}
);
myArray=[“yahoo.com”、“google.co.uk”];
模式=[];
对于(var x=0;x,必须为模式使用数组
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
的第二个参数是。添加双引号的原因是什么
-var aURL="\"https://*." + myArray[x] + "/*\""
+var aURL="https://*." + myArray[x] + "/*"
我更新了代码。仍然不起作用。我收到了我在帖子中声明的错误。侦听器不接受包含多个URL的数组。我检查了MDN,找不到任何包含多个URL的示例。这是因为您添加了生成无效URL的代码。URL不应包含引号。我还建议您使用array.map()而不是for循环。我更新了答案中的代码,向您展示了如何使用array.map实现与for循环相同的功能(但没有无效的引号)。
-var aURL="\"https://*." + myArray[x] + "/*\""
+var aURL="https://*." + myArray[x] + "/*"