You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Web Extension API访问和编辑Firefox及Chrome已保存表单数据

嘿,这个问题确实挺让人头疼的,毕竟浏览器对隐私敏感数据的API开放一直比较谨慎。我整理了当前Firefox和Chromium系浏览器(Chrome/Edge等)的最新情况,给你参考:

一、密码类数据的访问与编辑(Firefox + Chromium通用)

目前两款浏览器都提供了成熟的API来操作已保存的密码,而且接口基本通用(Firefox兼容Chrome的命名空间)。

1. 权限声明

首先必须在扩展的manifest.json里声明"passwords"权限,比如:

{
  "manifest_version": 3,
  "name": "你的扩展名称",
  "version": "1.0",
  "permissions": ["passwords"],
  "background": {
    "service_worker": "background.js"
  }
}

注意:这类API只能在后台脚本(service worker)里调用,不能直接在内容脚本中使用。

2. 核心操作示例

获取已保存的密码

你可以通过搜索特定域名来获取对应的密码条目:

// Firefox/Chromium通用写法(用chrome前缀兼容两边,Firefox也支持)
chrome.passwords.search({ url: "https://example.com" }, (results) => {
  results.forEach(item => {
    console.log(`用户名: ${item.username}, 密码: ${item.password}`);
  });
});

// Firefox原生支持Promise写法,更优雅:
browser.passwords.search({ url: "https://example.com" })
  .then(results => {
    results.forEach(item => console.log(`用户名: ${item.username}, 密码: ${item.password}`));
  });

保存/更新密码

如果要新增或更新密码条目,用save方法:

chrome.passwords.save({
  url: "https://example.com",
  username: "new_user_123",
  password: "secure_pass_456"
});

删除密码

删除指定域名的密码条目:

chrome.passwords.remove({
  url: "https://example.com",
  username: "old_user"
});
二、地址/姓名等自动填充表单数据

这块就比较受限了,不管是Firefox还是Chromium系浏览器,目前都没有公开的Web Extension API允许扩展直接读取或编辑用户已保存的地址、姓名这类自动填充数据。

原因很简单:这类数据属于高度隐私的个人信息,浏览器厂商出于安全和隐私保护的考虑,暂时没有开放对应的接口。

如果你的需求是帮助用户填充表单,只能通过内容脚本操作DOM来手动填充,前提是用户主动授权或者通过扩展的交互触发(比如点击扩展图标后填充),而无法直接从浏览器的存储中读取这些数据。

三、关键注意事项
  • 隐私合规:处理用户密码等敏感数据时,必须严格遵守浏览器的隐私政策,绝对不能未经用户授权收集、传输或存储这些数据。
  • Manifest版本:上面的示例用的是Manifest V3,这是当前的标准版本,Firefox和Chromium都支持。如果还在用V2,语法会略有不同,但核心API逻辑一致。
  • 兼容性:Firefox对Chrome的chrome.*API兼容性很好,大部分密码相关代码可以直接复用,只是Promise支持上Firefox更原生。

内容的提问来源于stack exchange,提问作者Tadeus Senf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:13:21