如何使用 Chrome 扩展程序阻止某些网站?

2024-03-19

我正在为一个项目制作一个简单的 chrome 扩展。我正在制作一个扩展程序来阻止某些 URL(社交媒体等),以使学习更加高效。我不太擅长JS,但我想学习。我有一些想法,也许它可以阻止网站,或者只是在 div 中绘制一些内容来阻止其内容。另外,也许我可以在 popup.html 中输入一个 URL 来指定被阻止的网站。在 firebase 中保存数据。另外,我读到也许使用 declarativeWebRequest 更容易,但不太确定如何使用它。

Manifest.js

"name": "StudyBuddy",
"description": "Helps you study by blocking distracting websites",
"version": "2.0",
 "permissions": [
   "webRequestBlocking",
   "webRequest",
   "activeTab",
   "tabs",
   "http://*/*",
   "https://*/*"
],
 "content_scripts" : [{
    "matches": ["<all_urls>"],
    "js" : ["background.js"],
    "css" : ["styles.css"]



  }],
 "browser_action": {
   "default_title": "Blocks websites",
   "default_popup": "popup.html"

  },
  "manifest_version": 2

背景.js

console.log("Loaded extension");


function blockRequest(details) {
   return {cancel: true};
}

function updateFilters(urls) {
   if(chrome.webRequest.onBeforeRequest.hasListener(blockRequest))
     chrome.webRequest.onBeforeRequest.removeListener(blockRequest);
   chrome.webRequest.onBeforeRequest.addListener(blockRequest, {urls: ["*://*.facebook.com/*", "*://*.facebook.net/*"]}, ['blocking']);

}

目前我的扩展程序不会阻止任何内容。


好的,您的代码有两个问题:

  • 你的manifest.json没有指定background.js,所以该代码没有运行。
  • 你实际上并没有调用updateFilters随时随地发挥作用。

我纠正了这两个问题,这个扩展对我来说效果很好,它按预期阻止了 Facebook。

一般来说,我建议您多阅读一些文档 https://developer.chrome.com/extensions/getstarted当您尝试开始时进行扩展,尤其是以下部分背景页 https://developer.chrome.com/extensions/background_pages and 活动页面 https://developer.chrome.com/extensions/event_pages.

manifest.json:(请注意,我无权访问您的弹出 html/css,因此我必须从清单中删除该部分)。

{
  "name": "StudyBuddy",
  "description": "Helps you study by blocking distracting websites",
  "version": "2.0",
  "permissions": [
     "webRequestBlocking",
     "webRequest",
     "activeTab",
     "tabs",
     "http://*/*",
     "https://*/*"
  ],
  "background" : {
    "scripts":  [
      "background.js"
    ]
  },
  "manifest_version": 2
}

背景.js

console.log("Loaded extension");


function blockRequest(details) {
   return {cancel: true};
}

function updateFilters(urls) {
   if(chrome.webRequest.onBeforeRequest.hasListener(blockRequest))
     chrome.webRequest.onBeforeRequest.removeListener(blockRequest);
   chrome.webRequest.onBeforeRequest.addListener(blockRequest, {urls: ["*://*.facebook.com/*", "*://*.facebook.net/*"]}, ['blocking']);
}

updateFilters();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Chrome 扩展程序阻止某些网站? 的相关文章

  • 我的用户脚本如何根据链接的文本获取链接?

    给定目标页面上的 HTML dd class ddTit a href http abc xxx com 54781 html target blank special text words a dd 我怎样才能根据 获取url特殊文字词
  • 如何通过 JavaScript for 循环创建 json?

    I have array选择标签
  • 如何使用 java/vb 脚本调用自定义 ActiveX dll 中的方法

    我使用 VB6 创建了一个 ActiveX dll 并使用打包和部署向导将其打包 生成了一个 cab 文件和一个演示 HTML 页面 此 ActiveX dll 包含一个 simgle 方法 该方法返回字符串且不接受任何参数 我遇到的麻烦是
  • 等待 JavaScript 中 Json 调用完成

    我正在使用下面的json调用在我的 javascript 方法中 function go123 var cityName var temp getJSON https abc in api city callback args functi
  • 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字

    我下面有一个字符串 它是以英镑为单位的价格 我想删除货币符号 然后将其转换为我可以用来与另一个值进行比较的数字 价格 例如 X gt Y 14 50 我之前已将字符串转换为用于货币的数字 var priceNum parseFloat pr
  • 这个特定的 ReactJs 代码是如何执行的初学者问题?

    我是初学者 正在阅读大量代码 现在我想知道下面的代码我明白这段代码在做什么 我需要澄清的是代码流程 当我运行它时 我看到图像正在加载 React 是从上到下执行代码吗 占位符图像异步获得正确的图像 但会App如果需要时间 组件会开始渲染但没
  • Chart.js 没有显示在我的视图中

    我有一个使用 angular js 运行的应用程序 我的视图之一应该加载图表 我正在使用 Chart js 但由于某种原因它不起作用 并且我的控制台上没有显示错误 这是我创建图表的函数 scope writeBatteryChart fun
  • JavaScript 中的常用数字

    在我的任务中 我必须编写一个程序来查找数组中最常见的数字以及它重复的次数 我写了一些东西 但只打印最大重复次数 所以我的问题是如何打印这个元素的值 最大数量 在我的例子中是 4 var array 13 4 1 1 4 2 3 4 4 1
  • 是否可以用 json 进行表达式/计算?

    我使用出色的 json server 作为应用程序的后端 它对于访问自定义端点以检索一些数据非常有用 但是如果它允许我进行计算 表达式以便我也可以模仿后端行为 那将会非常有用 以这个数据结构为例 products name football
  • Backbone-relational 无法实例化两个 RelationalModel 对象

    我正在尝试实现 BackboneRelational 并不断获得 无法实例化多个 Backbone RelationalModel 每种类型都有相同的 ID class App Models User extends Backbone Re
  • 使用JS将图像的特定背景颜色设置为透明

    我正在使用以下代码来修改图像的透明度 然而 我想做的只是修改图像的背景颜色并将其 alpha 通道设置为 0 而不是整个图像 以下代码将整个图像的 Alpha 透明度设置为 0 var ctx this data getContext 2d
  • 在 NPM 上捆绑并发布客户端 Web 代码

    我制作了一个 JavaScript 文件 假设它的内容是这样的 let myCoolAlert str gt alert str in a different js file SO doesn t allow you to cross fi
  • 日期时间的自定义 JavaScriptConverter?

    我有一个对象 它有一个 DateTime 属性 我想通过 AJAX JSON 将该对象从 ashx 处理程序传递回网页 我不想使用第 3 方控件 当我这样做时 new JavaScriptSerializer Serialize DateT
  • 替换 Javascript 中的引号?

    对于我正在制作的网络应用程序 我将收到文本字符串 其中偶尔包含引号 因为我接下来要 document writing 字符串 所以需要将它们更改为撇号或转义 我该怎么做 因为当我尝试时它似乎不起作用 特别是我认为因为字符串的引号阻止了脚本的
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • CKEditor TypeError:c[a] 在 CodeIgniter 中未定义

    我正在尝试在基于 codeigniter 的网站中安装 CKEditor 并且我已按照本教程进行操作 Codeigniter 教程中的 CKEditor http nukium com developpement php framework
  • Safari 的 Javascript 与 document.write 的问题

    我的问题只发生在 Safari 上 IE FF Chrome 和 Opera 都可以完美运行 我正在向 DOM 添加一个对象 与 YouTube 的方式完全相同 具体取决于 ActiveX 或 NPAPI 因此在确定写入对象类型后 我通过以
  • JavaScript 右移负数

    这是片段 var i 101 console log 101 i toString 2 console log 101 gt gt 1 i gt gt 1 toString 2 var l 101 console log 101 l toS
  • 使用 Promise 语法编写同步代码有什么好处吗?

    有同步承诺这样的概念吗 使用 Promise 语法编写同步代码有什么好处吗 try foo bar a b bam catch e handleError e 可以写成类似的东西 但使用同步版本then foo then bar bind

随机推荐

  • 如何在 BigQuery 查询中转义百分号?

    我们尝试从 BigQuery 中仅包含百分号 的字段中选择行 我们已经尝试过各种其他问题的答案 如下所示 SELECT COUNT 1 FROM Table WHERE field name LIKE 这会产生带有单引号或双引号的无效转义字
  • preg_replace 行首的双空格到制表符 (\t)

    只是一个简单的快速问题 我想用制表符替换行开头的双空格 目前我正在尝试preg replace 2 t text 但这仅替换了第一次出现的双倍空格 EDIT preg replace PATTERN REPLACEMENT HalloWor
  • 在两种不同模型用户和活动管理员的情况下,如何定义设备的自定义故障?

    我有两种模式 用户 和 活动管理员 我想在这两种模式上应用我的devise集成 我有我的custom failure rb如下 class CustomFailure lt Devise FailureApp def redirect ur
  • 我应该关心大量的依赖关系吗?

    我正要包括HtmlUnit http htmlunit sourceforge net项目中的库 我解压了 zip 文件 发现它不少于12 个依赖项 http htmlunit sourceforge net dependencies ht
  • .vue 单文件组件中使用的基础问题

    我发现使用时有问题祖布基金会 http foundation zurb com班级在 vue 单文件组件 https v2 vuejs org v2 guide single file components html 起初我无法得到显示模态
  • VSTS 构建 Nuget 打包器不起作用

    我正在尝试在构建后打包一个库以在我的 VSTS Packages feed 上发布 但任务 Nuget Packager 不起作用 我尝试了很多设置组合 但无法使其发挥作用 我尝试使用 Net Core 和 Net 4 6 2 打包该库 尝
  • 在 ASP.NET Core MVC 中,是否可以从项目文件夹外部添加 View 文件夹?

    我的大部分观点都是有规律的
  • 如何检查 Python 引发异常的函数范围?

    我最近发现了 Python 中非常有用的 i 标志 i inspect interactively after running script also PYTHONINSPECT x and force prompts even if st
  • 相当于 De Bruijn LSB,但适用于 MSB

    有谁知道类似于 De Bruijn 的 LSB 但针对 MSB 的算法吗 或者确定 MSB 的最有效方法 我知道 Log 2 Val 会这样做 但我不知道这是否是最有效的方法 我需要它的原因是我需要将小端转换为大端 我知道这个的标准算法 然
  • 如何检查 PyTorch 是否正在使用 GPU?

    如何检查 PyTorch 是否正在使用 GPU 这nvidia smi命令可以检测 GPU 活动 但我想直接从 Python 脚本内部检查它 这些功能应该有助于 gt gt gt import torch gt gt gt torch cu
  • 在批处理和 VBS 混合中使用变量

    This thread https stackoverflow com questions 9074476 is it possible to embed and execute vbscript within a batch file w
  • Boost.Asio安装问题

    我已经使用 bjam install 安装了 boost 库 但是当我编译程序时 include boost asio hpp int main return 0 出现此类错误 tmp ccVR3eeF o In function stat
  • 虚拟化页表的工作原理

    阅读有关虚拟化页表概念的内容 其中部分页表放入虚拟内存中 维基百科 https en wikipedia org wiki Page table Virtualized page table以及 Patterson 和 Hennessy 页
  • ExecutorService,如何等待所有任务完成

    等待所有任务的最简单方法是什么ExecutorService完成 我的任务主要是计算 所以我只想运行大量作业 每个核心一个 现在我的设置如下所示 ExecutorService es Executors newFixedThreadPool
  • 如何将 NSDate 对象设置为午夜?

    我有一个NSDate对象 我想将其设置为任意时间 例如午夜 以便我可以使用timeIntervalSince1970一致检索数据的功能 无需担心时间when对象已创建 我尝试过使用NSCalendar并使用一些 Objective C 方法
  • 同构弦

    给定两个字符串 s 和 t 确定它们是否同构 如果 s 中的字符可以替换得到 t 则两个字符串是同构的 所有出现的字符都必须替换为另一个字符 同时保留字符的顺序 任何两个字符都不能映射到同一个字符 但一个字符可以映射到其自身 例如 给定 e
  • 如何在magento中调用另一个动作?

    是否可以在magento中调用另一个动作 例如 让我们考虑两种操作方法 添加动作 更新操作 调用 addAction 时是否可以实际调用 updateAction 谢谢 巴兰 您可以进行转发 例如 public function addAc
  • Objective-C 中的自动解析库 - [自动 XML/JSON 到对象转换]

    Objective C 中是否有一个我可以在 iPhone 中使用的库 在其中我可以提前告诉库这些标签应该在 xml 文件中出现 然后该库会自动为我解析它并给我一个 NSDictionary 数组作为回报或类似的东西 简而言之 我正在寻找一
  • 为什么本机 python 列表上的 for 循环比 numpy 数组上的 for 循环更快

    我正在阅读介绍 numpy 的章节高性能Python并在我自己的计算机上使用了代码 我无意中用 for 循环运行了 numpy 版本 发现与本机 python 循环相比 结果出奇地慢 代码的简化版本如下 其中我定义了一个值为 0 的二维数组
  • 如何使用 Chrome 扩展程序阻止某些网站?

    我正在为一个项目制作一个简单的 chrome 扩展 我正在制作一个扩展程序来阻止某些 URL 社交媒体等 以使学习更加高效 我不太擅长JS 但我想学习 我有一些想法 也许它可以阻止网站 或者只是在 div 中绘制一些内容来阻止其内容 另外