如何处理 Firefox 扩展中的每个请求?

2024-01-27

我试图捕获并处理网页或其中的插件即将发出的每个请求。 例如,如果您打开控制台并启用网络日志记录,则当即将发送 HTTP 请求时,控制台会在其中显示该请求。 我想捕获每个链接并调用我的函数,即使视频是由 Flash 播放器加载的(也登录到控制台,如果它是)http)。 谁能指导我应该做什么,或者我应该从哪里开始?

编辑:我希望能够取消请求并在需要时按照我的方式处理。


我相信您可以使用 Jetpack SDK 来获得您需要的大部分内容。如果您注册到系统事件 https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/system/events.html并聆听http 修改请求 https://developer.mozilla.org/en-US/docs/Observer_Notifications#HTTP_requests,您可以使用 nsIHttpChannel 方法来modify https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIHttpChannel#setRequestHeader%28%29响应和请求

let { Ci } = require('chrome');
let { on } = require('sdk/system/events');
let { newURI } = require('sdk/url/utils');

on('http-on-modify-request', function ({subject, type, data}) {
  if (/google/.test(subject.URI.spec)) {
    subject.QueryInterface(Ci.nsIHttpChannel);
    subject.redirectTo(newURI('http://mozilla.org'));
  }
});

附加信息, ”拦截页面加载 https://developer.mozilla.org/en-US/docs/XUL/School_tutorial/Intercepting_Page_Loads"

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

如何处理 Firefox 扩展中的每个请求? 的相关文章

  • CSS 字体在 Firefox 中不起作用

    我下面有这个字体代码 它在谷歌浏览器中工作正常 但在火狐浏览器中根本不起作用 为什么
  • 我的附加 SDK 内容脚本如何与网站页面脚本交互?

    在我的 SDK 插件中 我想 调用页面脚本中的函数 导出 读取 获取 写入 设置 或操作页面脚本中的某些变量或属性 将新函数导出到页面脚本中或覆盖页面脚本中的现有函数 或将自定义事件发布到页面脚本可以侦听的页面 我的附加 SDK 内容脚本如
  • 使用 Firefox 插件发出跨域 ajax 请求

    我对如何在 Firefox 插件中发出跨域 ajax 请求感到有点困惑 LastPass 和 Xmarks 等插件建议你可以做到这一点 但是当我尝试用 google 搜索你是如何做到这一点时 每个人似乎都说你不能 除非用户在 Firefox
  • 由于运行 Javascript,Firefox 选择下拉列表不断刷新/恢复为默认选项 - AngularJS

    我正在 AngularJS 中构建一个应用程序 但在使用 Firefox 时无法选择下拉菜单 当我单击选择菜单并将鼠标悬停在选项上时 它会将所选选项从光标悬停的选项重置为默认 第一个选项 当选项数量很大时 选择正确的选项变得非常困难 该应用
  • 附加组件生成器:ContentScript 并返回附加组件代码?

    我正在使用 Firefox Add on Builder 这是我到目前为止所拥有的 main js var widgets require widget var tabs require tabs var data require self
  • 所有属性的 JavaScript getter

    长话短说 我现在的情况是想要一个 PHP 风格的 getter 但是是 JavaScript 的 我的 JavaScript 仅在 Firefox 中运行 因此 Mozilla 特定的 JS 对我来说没问题 我能找到的制作 JS gette
  • Firefox 扩展的初始框架? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jquery 加载在 Firefox 中不起作用

    我正在开发的网站上的脚本有问题 它在 Safari Opera 和 Chrome 中工作正常 但在 Firefox 中不起作用 当您单击链接时 我尝试将 div contain 从内部链接加载到覆盖 div 然后该 div 就会取消隐藏 所
  • 如何使用 jQuery 隐藏和显示 CKEditor?

    以下代码应允许隐藏 显示 CKEditor 表单 a Hide a a Show a
  • 此 JavaScript 如何在 Firefox 中打开 Windows 设置?

    新安装 Firefox 45 开发版后 我看到了这个页面 它有一个按钮 让我们开始吧 单击该按钮时 会以某种方式打开选择默认应用程序Windows 10 中的设置页面 这是怎么做到的 我无法通过开发者控制台在该页面上迷宫般的代码中找到任何内
  • jQuery 在 Chrome 下发现错误元素

    我使用 jQuery 迭代 HTML 表 并动态填充每行的行号 通过在文本框中填充行号 function updateRowNums myTable find tr each function index this find input i
  • 通过 XSL 查看 XML 到 XHTML 转换中的源代码

    我正在尝试使用 XSL 文件将 XML 文件转换为 XHTML 文件 如何查看转换后输出的XHTML源代码 我目前正在通过 Firefox 查看结果 但我看到的只是 XHTML 文件的渲染版本 我想查看源代码 但是当我转到 查看 gt 页面
  • 链接无效

    我正在尝试使用以下命令创建一组指向页面中特定部分的链接 a href 符号 但它似乎不起作用 点击链接似乎没有任何反应right click gt open in a new tab更改 url 但不会移动到页面的其他部分 我使用的是火狐浏
  • 修改附加套件中 Firefox 下载对话框的内容

    我希望能够在开始文件下载时在 Firefox 中弹出的下载对话框中添加一个选项 是否可以使用新的附加 SDK 来执行此操作 还是必须使用旧方法 编辑 显然 如果选择了新选项 我需要一种方法来了解它并基于它执行代码 这就是你会用的东西XUL
  • 在 Firefox 中访问全局事件对象

    目标 运行一些函数 ajaxStart 但仅限于由特定事件触发时 代码 loading indicator ajaxStart function if event null if event type hashchange event ty
  • Firefox 背景图像在切换标签后消失

    我在渲染背景图像时遇到一些非常奇怪的问题 我不确定这是 Firefox 的错误还是我的错 每次我在 Firefox 中打开项目站点时 所有背景图像都会正确加载并显示 当我切换到另一个选项卡并在一段时间后切换回来后 所有背景图像都消失了 我检
  • 当来自 Mozilla Firefox 和 MS Edge 上的剪贴板时 Alpha 会变成黑色

    我正在使用代码从这里 https stackoverflow com a 15369753 5875416将剪贴板中的图像粘贴到页面上 它在所有浏览器 Chrome Firefox Edge 和 Opera 中都能正常工作 问题是 当图像是
  • 同域策略如何应用于 Firefox 和 Chrome 扩展程序中的后台脚本(非内容脚本)?

    据我了解 扩展中有两种类型的脚本 一种是从网页中的 DOM 运行并与之交互的 内容脚本 它们受同源策略的约束 另一种是 内容脚本 其他的是脚本 调用它们 扩展脚本 在后台运行 可能会也可能不会与网页交互 例如main js在火狐或背景 js
  • 在 Firefox 中设置自定义协议处理程序?

    我希望 Firefox 在 Linux 上运行 使用外部应用程序打开自定义协议 例如以以下开头的网址gvim 协议名称应该启动 gvim 并传递 url 的其余部分 我尝试设置network protocol handler externa
  • FireFox 中的“contenteditable = true”高度问题

    当有空的时候div with contenteditable true CSS contenteditable true border 1px dashed dedede padding 3px HTML div div 在 IE 和 Ch

随机推荐

  • virtualenv:无法访问 lib:没有这样的 virtualenv 或站点目录

    我正在使用 Google Cloud Platform 创建一个基于 Django 的 http API 它使用 Google 的云 SQL API 和机器学习 API 我在我的电脑上制作了一个 django mysql 应用程序 并且能够
  • 复选框可以替代验证码吗?

    复选框是否提供了在网站上使用验证码的替代方法 我想我需要使用验证码进行用户注册 相反 如果我为 通过单击此处我同意 之类的条款添加一个复选框 可以解决机器人问题吗 或者除了复选框之外还需要验证码吗 您可以使用复选框做的一件事是制作honey
  • 范围(len(列表))或枚举(列表)? [复制]

    这个问题在这里已经有答案了 其中哪一个会被认为更好 更清晰 更快 更 Pythonic 我不关心列表的内容L 到底有多长 a f n for n in enumerate L or a f n for n in range len L 如果
  • 无法在不和谐中向 Cog 添加命令,py

    我试图使用 cogs 在 python 中制作一个简单的机器人 但是每当我运行我的代码时 当命令明确存在时 它会说找不到命令 我已经尝试了一切 但找不到任何解决方案 任何帮助深表感谢 所以我有2个文件 一个包含齿轮和设置功能 另一个包含机器
  • RTE 显示我自己的 CSS 类作为选择的正确配置是什么?

    RTE 的配置随每个 大 版本而变化 现在我已经安装了第一个 7 6 我需要配置 RTE 以便编辑者可以为段落 跨度或表格设置特殊的类 例如编辑器应该能够选择表格 bootstrap 的默认样式 table striped table bo
  • iOS - 根据百分比用多种颜色填充bezierPath

    我在 Objective C 中画了一个 UIBezierPath 并用红色填充它 现在 我想根据百分比用多种颜色填充路径 例如 我想用 20 的绿色填充路径 用红色填充剩余的 80 彼此重叠 不是渐变 我还想要填充和描边之间有几个像素的间
  • ElasticSearch 在匹配查询中考虑词序

    假设我的索引有两个文档 富酒吧 富酒吧 当我对 bar foo 进行常规匹配查询时 两个文档都正确匹配 但它们获得相同的相关性分数 但是 我希望评分时单词的顺序很重要 换句话说 我希望 bar foo 有更高的分数 因此 我尝试将匹配查询放
  • 如何批量添加文件夹名到文件名?

    我有一个像这样的文件夹结构 1 1 master jpg 1 2 master jpg 1 3 master jpg 2 1 master jpg 2 2 master jpg 2 3 master jpg 我需要将所有图像导入到网站 但文
  • int argc, char *argv[] 是什么意思?

    在许多 C IDE 和编译器中 当它为您生成 main 函数时 它看起来像这样 int main int argc char argv 当我在没有 IDE 的情况下仅使用命令行编译器编写 C 代码时 我输入 int main 没有任何参数
  • 在BackgroundWorker线程上创建FlowDocument

    我需要动态生成一个FlowDocument来自大量数据 由于该过程需要几分钟时间 因此我想在后台线程上执行该操作 而不是让 UI 挂起 但是 我无法生成FlowDocument在非 UI 线程上尝试插入矩形和图像会导致运行时错误 抱怨它不是
  • java中System.out.write和System.out.print有什么区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道两者的区别在哪里System out write and System out print在我的 Java 课上 两种方法Pr
  • 来自 Azure TableStorage 的 TableQuery,根据 PartitionKey 进行筛选

    我试图通过partitionKey从表中抽象获取所有实体 如下所示 public List
  • “无效的正则表达式...原因是 R 中的 gsub 出现“尾随反斜杠”错误

    我在 R 中替换文本时收到错误消息 x 1 Easy bruising and bleeding gsub as character x Error in gsub as character x invalid regular expres
  • 如何在 MATLAB 中中止正在运行的程序?

    有时 在调用一个函数后 需要大约 30 分钟才能完成 您意识到自己做错了什么 并想要停止程序 在 MATLAB 中如何做到这一点 我所做的是完全关闭 MATLAB 并重新启动 我想会有办法中止执行函数的替代 有人知道那是什么吗 Hittin
  • Java - 如何将文件移动到 zip 文件中?

    就是这样 我有一个文本文件 我需要将其移动到给定目录中的 现有 Zip 文件 File file new File C afolder test txt File dir new File directoryToGo existingzip
  • X86_64 - 汇编 - 为什么位移不是 64 位?

    我正在读英特尔 x86 64 指南第 1 卷刷新内存寻址的工作原理 Still 3 7 5 指定偏移量 内存地址的偏移部分可以直接指定为静态值 称为位移 也可以通过由以下一个或多个组成部分组成的地址计算来指定 位移 8 位 16 位或32
  • 如何在 ruby​​ 中格式化日期以包含“rd”,如“3rd”

    我想格式化日期对象 以便可以显示 7 月 3 日 或 10 月 1 日 等字符串 我在 Date strftime 中找不到生成 rd 和 st 的选项 有人知道怎么做吗 除非你正在使用Rails 添加这个排序方法 无耻的代码 从 Rail
  • 在 django 管理列表视图中上传 CSV 文件,替换添加对象按钮

    我想替换管理页面列表视图中的添加对象按钮 其基本思想是 管理员可以下载数据库中所有模型的数据 使用工具编辑数据 然后作为 CSV 文件重新上传 在列表视图中 我正在努力覆盖表单 因为设置 class SomeModelForm forms
  • 将字节转换为浮点数是否安全,或者可能会产生未定义的行为?

    是否存在字节序列 当转换为f32 or f64 在 Rust 中产生未定义的行为 我将非有限值 例如 NaN Infinity 等 计算为有效浮点值 评论给这个答案 https stackoverflow com a 43708483 43
  • 如何处理 Firefox 扩展中的每个请求?

    我试图捕获并处理网页或其中的插件即将发出的每个请求 例如 如果您打开控制台并启用网络日志记录 则当即将发送 HTTP 请求时 控制台会在其中显示该请求 我想捕获每个链接并调用我的函数 即使视频是由 Flash 播放器加载的 也登录到控制台