1

在我简单的 gmail chrome 扩展中 - 我想防止在发送的邮件中加载图像。

当我包括在内时,里面 chrome.webRequest.onBeforeRequest.addListener正在工作

urls: [ "*://*.googleusercontent.com/*" ]

在 urls 数组中。但这会触发所有我只想为此模式触发的图像 "*://*/#https://mysite/*",

但它根本没有触发 - 如果我包含googleusercontent url,它正在以这种格式使用 details.url - https://ci6.googleusercontent.com/proxy/IB4W2KvisZjL2rgC....#https://mysite/*

显现

"permissions": [
    "webRequest",
    "webRequestBlocking",
    "*://*.googleusercontent.com/*",
    "*://*/#https://track1/*",
    "*://*.googleusercontent.com/*/://track1/*"
],

并在后台脚本中

chrome.webRequest.onBeforeRequest.addListener(
        function(details) {
            console.log(details);    
        }, {
        urls: [
            "*://*/#https://track1/*",
        ]
       }, ['blocking']
 );

我认为问题在于模式匹配,但我无法理解哪个是正确的模式

4

1 回答 1

1
chrome.webRequest.onBeforeRequest.addListener(
        function(details) {
           // Here inside details.url - you see each image is in format https://googlecontent 
            console.log(details);    
        }, {
        urls: [
            "*://*/#https://track1/*",
        ]
       }, ['blocking']
 );

如上所述,在 details.url 内部 - 你会看到每个图像的格式为https://googlecontent
所以你需要在urls数组中包含这个模式。
现在如何获取所需的 url 链接是

if (details.url.includes('<include link string here>') || details.url.includes('<other link here>')) {
    if (some condition to stop image load met) cancel = true;
}
于 2018-09-13T14:30:42.970 回答