制作你的第一个 Chrome 扩展 | 广告拦截器

216 阅读2分钟

Google Chrome 扩展是可以安装到 Chrome 浏览器中的程序,以改变浏览器的功能。网络商店中有许多出色的扩展,但我个人最喜欢的就是广告拦截器。 Chrome

什么是广告拦截器?

广告拦截器是一种软件,用于阻止与广告服务器之间的网络请求。这是一个书面的定义。让我们以更易懂的方式来理解它。

Ad blocker

假设我想观看一个 YouTube 视频。当我点击视频时,我的浏览器(即 Google Chrome)向 YouTube 发送请求,请求发送特定的视频。然后,YouTube 告诉浏览器,它将发送视频,但在此之前,请先发送一些请求给我的广告商。这样你就会看到广告和视频。

Ad Blocker Concept

那么,广告拦截器做什么呢?它阻止任何对这些广告服务器的请求。它与浏览器一起运行,检查网络流量,以防止浏览器发送请求给广告商。

让我们开始编码

首先,让我们按照下面给出的结构创建项目。

Project Structure

现在,我们将创建一个 manifest.json 文件,其中包含扩展的所有重要信息,如名称、版本等。

{
  "name": "Aliferous Adblocker",
  "version": "1.0",
  "description": "Adblocker chrome extension",
  "permissions": [
    "webRequest",
    "webRequestBlocking",
    "<all_urls>"
  ],
  "background": {
    "scripts": [
      "background.js"
    ]
  },
  "icons": {
    "16": "icons/logo_16.png",
    "48": "icons/logo_48.png",
    "128": "icons/logo_128.png"
  },
  "manifest_version": 2
}

上述图标是同一图像的不同尺寸,即 16x16、48x48、128x128。这是广告拦截器的标志。您可以选择任何图像,然后在此处更改其大小。将三个图标分别命名为 logo_16.png、logo_48.png 等,放入 icons 文件夹中。

接下来,我们创建 background.js 文件。在这个文件中,我们将调用 Chrome API 并添加事件监听器。我们将在发送请求之前添加事件监听器,以便它可以检查请求并在需要时阻止它。

const filters = [    "*://*.doubleclick.net/*",    "*://partner.googleadservices.com/*",    "*://*.googlesyndication.com/*",    "*://*.google-analytics.com/*",    "*://creative.ak.fbcdn.net/*",    "*://*.adbrite.com/*",    "*://*.exponential.com/*",    "*://*.quantserve.com/*",    "*://*.scorecardresearch.com/*",    "*://*.zedo.com/*",]

chrome.webRequest.onBeforeRequest.addListener(
    function(details) {return {cancel:true}},
    { urls: filters},
    ["blocking"]
)

在常量 "filters" 中,您可以添加广告来源的服务器。就这样!你完成了!

运行你自己的广告拦截器!

  1. 访问 chrome://extensions/
  2. 开启开发者模式
  3. 点击“加载已解压的扩展”,选择您制作广告拦截器的文件夹
  4. 现在尝试访问 filters 中的任何网站,您会发现它已被阻止。

Ad Blocked

如果您看到这样的输出,恭喜你成功制作了你的第一个 Chrome 扩展!

您可以在这里获取完整的源代码 github.com/sumana2001/…