是否可以通过JS检测用户在其浏览器上安装的扩展/添加内容?用例是特定的chrome扩展, Autofill 将一些文本值设置为隐藏的zip字段,导致某些验证失败,我想向用户显示此扩展可能会产生问题的消息。< / p>
答案 0 :(得分:1)
对于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
必须在privelaged javascript中运行此代码,而不是选项卡。你可以试试specialPowers
虽然我不知道它是如何运作的。
要从您的站点运行privelaged脚本,您必须创建一个firefox插件和addEventListener到您的站点,如列出插件的按钮,您将附加一个privelaged功能。
使用插件启用/禁用插件,但用户发现这很烦人,因为插件有时会在安装时做一些烦人的事情。
答案 1 :(得分:1)
对于Chrome扩展程序,只有某些扩展程序是可检测的,因此这不是一个非常好的方法,但据我所知,不再有任何可靠的方法来检测浏览器扩展程序。
对于要检测的扩展,您需要其Extension Id及其Web可访问资源。
某些扩展程序具有Web可访问资源,而某些扩展程序没有。如果没有Web可访问资源,您将无法检测到该扩展名。
要查找Web可访问资源,您需要查看扩展名chrome.manifest
文件。它会告诉您是否有可访问Web的内容。例如,chrome.manifest
文件可能会说:
内容web-developer content / web-developer / contentaccessible = yes
通常,查找浏览器扩展程序效率不高,因为您必须知道要提前检测哪些扩展程序,而且很多时候都无法检测到这些扩展程序。
此外,这是我在尝试做同样事情时使用的一个很好的链接here
答案 2 :(得分:0)
NavigatorPlugins.mimeTypes
查看MDN页面
希望有所帮助
答案 3 :(得分:0)
在JavaScript中检查zip字段在隐藏时是否已更改,并向用户显示扩展可能导致问题的警告。
答案 4 :(得分:0)
对于Firefox,您可以使用Mochitest / SpecialPowersAPI
来完成