javascript - 检测浏览器中已安装的扩展?

标签 javascript google-chrome-extension firefox-addon

是否可以通过 JS 检测用户在其浏览器上安装了哪些扩展/附加组件?用例是一个特定的 chrome 扩展,Autofill 将一些文本值设置到隐藏的 zip 字段中,导致一些验证失败,我想向用户显示一条消息,表明此扩展可能会产生问题。

最佳答案

对于 Firefox:第一段代码位于:AddonManager.jsm - MDN

Components.utils.import("resource://gre/modules/AddonManager.jsm");

AddonManager.getAllAddons(function(aAddons) {
  // Here aAddons is an array of Addon objects
});
// This code will execute before the code inside the callback

必须在特权 javascript 中运行此代码,而不是在选项卡中。您可以尝试使用 specialPowers,但我不知道它是如何工作的。

要从您的站点运行特权脚本,您必须创建一个 firefox 插件和 addEventListener 到您的站点,就像一个列出插件的按钮,您可以为其附加一个特权函数。

使用插件,您可以启用/禁用插件,但用户会发现这很烦人,因为插件有时会在安装时做一些令人讨厌的事情。

关于javascript - 检测浏览器中已安装的扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22254314/

相关文章:

javascript - 如何确保一次只运行一个递归 setTimeout 链?

javascript - chrome.downloads.download 无法从后台服务人员工作

javascript - 为什么我的非常简单的 Chrome 扩展程序在 Mac 上运行,但在 PC 上运行不正常?

android - Firefox Android 附加组件不允许 Button?

javascript - 从具有相同属性名称的多个表中引用列

javascript - Firefox 插件读取本地 XPI、文件和目录列表

javascript - 'gulp-jade' 无法正常工作或无法将 jade 编译为 html

javascript - 返回某个键:value of object

javascript - 这条线是什么意思? jQuery Hilghlight 插件中的 "this.parentNode.firstChild.nodeName"

javascript - for循环帮助,javascript的未知语法