如何在GMAILS Chrome扩展程序中阻止图像加载?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在GMAILS Chrome扩展程序中阻止图像加载?相关的知识,希望对你有一定的参考价值。

在我简单的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']
 );

我认为问题在于模式匹配,但我无法理解使用哪种模式

答案
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']
 );

如上所述Inside 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;
}

以上是关于如何在GMAILS Chrome扩展程序中阻止图像加载?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:如何将内容阻止程序应用于 chrome?

如何链接到 Google Chrome 扩展程序的本地图像?

我可以使用Google Chrome扩展程序阻止警报()

Chrome 扩展程序和 gmail.js 阻止访问 google api

idm chrome扩展被阻止解决办法

Ajax 调用在 HTTPS 上被阻止 - Chrome 扩展