为 Chrome 分机中的每个顶级域名屏蔽一个域名

Block a domain for every Top Level Domain in Chrome Extension

我正在寻找匹配模式规则的解决方案以制作 Google Chrome 扩展 - 我正在尝试阻止 Pinterest 等网站,问题是 Pinterest 有一个百万个 TLD 而不是写出...

"*://pinterest.com/*, *://pinterest.se/*, *://pinterest.co.uk/*..等永远

我正在尝试阻止 Pinterest 的所有顶级域。

使用 "*://pinterest.*/*""*://*.pinterest.*/*" 无效。

var blockedUrls = [ "*://*.pinterest.se/*, *://*.pinterest.com/*"];


var host = "https://www.google.com"


chrome.webRequest.onBeforeRequest.addListener(
function(details) {
     return {redirectUrl: host };
},
{
    urls:blockedUrls,

    types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
},
["blocking"]
);

以上代码有效。 任何人都知道如何做到这一点,任何朝着正确方向的推动都将不胜感激。 非常感谢。

documentation 你有这个例子:

chrome.webRequest.onBeforeRequest.addListener(function(details) {
          return {cancel: details.url.indexOf("://www.evil.com/") != -1};
        },
        {urls: ["<all_urls>"]},
        ["blocking"]);

只需将 www.evil.com/ 更改为 pinterest.,它将阻止所有 pinterest.* 页面。如果您想阻止其他子域,例如 m.pinterest.comimages.pinterest.com(我不知道这些是否存在),您可以使用 RegExp.