如何从 Firefox 扩展程序访问网页数据?

2023-12-01

我已经成功地在 Firefox 中运行了一个自定义的非常基本的扩展。

接下来我想做的是:

  1. 检查用户是否位于所需的网页上
  2. 如果是:检查每个回发的页面是否包含包含string
  3. 如果找到:启动外部应用程序string范围

我对网页上的 javascript 有一些经验,但我不知道如何注册我的脚本以在 Firefox 打开的每个网页上运行以及如何访问页面中的元素。

关于从哪里开始的提示将不胜感激......

EDIT:我弄清楚了如何在每个页面上运行我的代码:

addEventListener("DOMContentLoaded", doSomething, false);

EDIT2:我可以在处理程序中使用 event.originalTarget 访问页面数据,并使用 Components.interfaces.nsIProcess 运行应用程序


那么剩下的就是 DOM 遍历和外部程序启动了。

DOM 遍历可以通过多种方式完成。然而,这里有一个简单的做法

var inputs = document.getElementsByTagName("input");
for (var idx=0; idx<inputs.length; idx++){
    var tp = inputs[idx].attributes['type'].value
    console.log(tp);
    if (tp == 'hidden'){
       // grab your text at here and launch the app.
    }
}

根据此启动外部应用程序post

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\myapp.exe");
file.launch();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Firefox 扩展程序访问网页数据? 的相关文章

  • Brunch 源映射:在 Chrome 开发工具中未命中断点

    我正在使用 Brunch 中内置的默认源映射 我看到文件很好 但无法在源映射文件中命中断点 使用 Javascript 访问调试器debugger 有效 这让我相信早午餐方面出了问题 这是我的 brunch config js module
  • jQuery JSONP ajax,未设置身份验证标头

    我正在尝试使用以下设置向 google 联系人 API 发出 ajax 请求 ajax url https www opensocial googleusercontent com api people me all dataType js
  • CSS 中的 Data-URI SVG 背景在 Firefox 中不起作用

    好的 这就是我想做的 我的 css 文件中有这段代码 form row textfield hover textfield m hover background image url data image svg xml base64 PHN
  • 网络上的等角柱状图

    我计划为游戏的标记 图钉 构建在线地图 但我无法设置标记的正确纬度 原始地图是一个2048 2048px 的正方形 然后我得到了标记 数千个 地图坐标使用 0 到 100 之间的 x y 表示法设置 0 0 是top left角和100 1
  • querySelector 搜索直接子级[重复]

    这个问题在这里已经有答案了 我有一些类似 jquery 的函数 function elem return gt someselector elem 问题是我怎样才能做同样的事情querySelector 问题是 gt 选择器中querySe
  • 玉石压痕错误

    因此 对于我的 Express 网站 我使用 jade 所以我决定尝试修改我的布局文件 以便我可以开始设计我的网站 我修改了原始布局代码 有效 但我开始在任何扩展布局的文件中出现缩进错误 如下所示 500 Error home kevin
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 为什么Promise中的代码会同步执行? [复制]

    这个问题在这里已经有答案了 在我的项目中 我有一个很长时间运行的操作 所以我决定将其放入Promise因为我认为这样我就可以在里面的代码继续执行其他操作Promise正在跑步 调试的时候发现外面的代码Promise仅当里面的代码执行Prom
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • 如何跨多个 React Redux 组件使用 requestAnimationFrame 实现游戏循环?

    努力思考最好的解决办法 我可以使用递归调用requestAnimationFrame有一个游戏循环 export interface Props name string points number onIncrement gt void o
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • 为什么 console.log() polyfill 不使用 Function.apply()?

    我一直在看一些流行的console log 包装 填充 保罗 爱尔兰的 http paulirish com 2009 log a lightweight wrapper for consolelog 本阿尔曼的 http benalman
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • 如何捕获文本区域上的 Enter 按键而不是 Shift+Enter? [复制]

    这个问题在这里已经有答案了 I m doing it for texarea A function should be called when the user press Enter but nothing should be done
  • 获取类中的所有静态 getter

    假设我有这个类 我像枚举一样使用它 class Color static get Red return 0 static get Black return 1 有没有类似的东西Object keys to get Red Black 我使用
  • eventSources 到事件 Json,完整日历

    我正在尝试从 eventSources 获取 json 调用到我的事件 我在 eventSources 中返回的 json 是 title Title Test start 1305841052 当我将此字符串传递到事件中时 它会正确显示日
  • 加载 Angular 库时,IE9 和 IE10 中出现 Angular JS“SCRIPT5007:预期对象”错误

    我正在开发一个 AngularJS 应用程序 该应用程序应在 Firefox IE 9 和 IE 10 上运行 我使用最新版本的 angularjs 库 现在是 1 3 15 服务器端是在JavaEE平台上用Java编写的 服务器运行在Gl
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效

随机推荐

  • 如何根据滑块上滑块当前位置的滑块颜色更改 JFXSlider 滑块的颜色?

    我正在使用一个JFXSlider在JavaFX中 我使用了线性渐变的颜色JFXSlider的轨道 使用 CSS 但是 我还想将拇指的颜色更改为该位置滑块的颜色 我使用了以下 CSS 来实现滑块的线性渐变并消除滑块的默认绿色JFXSlider
  • Objective-C:导航栏中的背景图像和标题

    我的导航栏中需要背景图像和标题 对于图像我写了一个类别 implementation UINavigationBar MyNavigationBar void setBackgroundImage UIImageView aTabBarBa
  • 如何使用 jquery-mobile 获取点击事件的位置/坐标?

    Jquery mobile 支持这些事件 http jquerymobile com demos 1 0a3 docs api events html 如何获取移动设备上点击事件的位置 例如在图像内 myimg bind tap funct
  • 反序列化 List 对象

    我正在尝试将 XML 反序列化为对象 但我陷入了一种情况 任何人都可以帮我吗 XML
  • 保存为 JPEG with Pillow 的图像与原始图像不同。

    我有一个 3 d numpy 数组 并使用 Pillow 将其保存为 JPEG 图像 当我使用 Pillow 重新加载图像时 生成的 numpy 数组有所不同 我为此编写了一个演示代码 from PIL import Image impor
  • 将开始和结束锚标记之间的字符串替换为其他字符串

    我需要用其他字符串替换一对锚标记之间的字符串 更清楚地说 a Click Here a 我想更换 点击这里 与 img src 标签 我阅读了一些其他资源 尝试了 Lars Olav Torvik 的正则表达式工具 但严重失败 请帮帮我 不
  • 如何基于分段控件和添加按钮切换到 2 个视图?

    我在导航控制器的标头中有一个分段控件 我想将一个对象添加到也在该导航控制器中的表视图控制器中 这就是我的问题所在 如何从一个 UIButton 切换到 2 个视图中的 1 个 即每个分段控件选项的不同添加视图 您只能从故事板中的 UIBar
  • Excel 将 URL 转换为图像 (1004)

    我有一个链接到 SQL 数据库的 Excel 文档 其中包含几列图像 URL One of those URLs looks like this https imissit blob core windows net iris 596480
  • 将两个字符串作为数值进行比较

    我应该如何比较 C 中表示数字的两个字符串 我想转换为数量long longtype 但问题是 string 表示的数值可以超过long long最大限制 保证该字符串代表一个数值 Java中也有类似的问题比较两个数字字符串值 但这利用了
  • 如何将变量转换为json?

    我想将json数据发送到ajax 但是如何将变量转换为json或将数组转换为json confirm order click function event event preventDefault var street street val
  • 如何跨线程共享包含 Sender 和 Receiver 字段的结构?

    我有一个结构 大致如下所示 struct Node id Arc
  • 程序从windows启动? C#

    So 我已经构建了一个只需打开一个新程序的winforms winform中的代码是这样的 如果有人需要 Process a Process a Process Start notepad exe BUT 我需要知道如何让程序随 Windo
  • 整数数组中具有最大总和的子序列[重复]

    这个问题在这里已经有答案了 给定一个整数数组 如何找到两个索引 i 和 j 使得子数组中从索引开始和结束的元素之和最大化 在线性时间内 简单的 假设你得到了数组a 首先 计算数组s where s i a 0 a 1 a i 您可以在线性时
  • 添加按钮到 QVideoWidget

    每个人 我尝试为 QMediaPlayer 元素设置点击属性 但我找不到制作它的模式 如果我尝试将按钮放在视频前面 该按钮会放在视频后面 即使使用 button gt raise videoWidget gt lower 如果我按下按钮全屏
  • 如何在没有 2^n if 语句的情况下启动具有许多布尔参数的函数模板

    我有一个 CUDA C 代码 专门出于性能原因而使用函数模板 这样该函数将只执行它需要执行的操作 而不是不断加载和读取布尔值来检查它是否需要执行操作 所有模板参数都是布尔值 在启动内核时 CPU 检查布尔值并启动适当的 我相信这称为内核模板
  • SQL Server 插入缺失行

    我有下表记录每天的值 问题是有时会缺少几天 我想编写一个 SQL 查询来 归还缺失的日子 使用线性插值计算缺失值 所以从下面的源表中可以看出 Date Value 2010 01 10 10 2010 01 11 15 2010 01 13
  • 将 C# 中的 CPU ID 代码转换为 C++ 中的 CPU ID 代码

    我有这个 C 代码来获取处理器 ID 但我无法将其传递给 C 我尝试了很多 但我真的不能 我刚刚开始使用 C 我希望能够通过以下方式获取 CPU ID C 就像我以前使用 C 一样 这是我在 C 中的代码 public static str
  • 嵌套列表理解以展平嵌套列表

    我对 Python 很陌生 想知道如何使用列表理解来展平以下嵌套列表 并使用条件逻辑 nested list 1 2 3 4 5 6 7 8 9 以下返回一个嵌套列表 但是当我尝试通过删除内部方括号来展平列表时 出现错误 odds even
  • Django 1.7 - makemigrations 未检测到更改

    正如标题所示 我似乎无法进行迁移 该应用程序最初低于 1 6 所以我知道迁移最初不会存在 事实上 如果我运行python manage py migrate I get Operations to perform Synchronize u
  • 如何从 Firefox 扩展程序访问网页数据?

    我已经成功地在 Firefox 中运行了一个自定义的非常基本的扩展 接下来我想做的是 检查用户是否位于所需的网页上 如果是 检查每个回发的页面是否包含包含string 如果找到 启动外部应用程序string范围 我对网页上的 javascr