如何在 Firefox Add On 中找出浏览器的用户代理

KaA*_*438 4 javascript firefox-addon firefox-addon-sdk

我正在创建(开发)一个 Firefox 插件,我需要找到浏览器的用户代理。在navigator.userAgent不工作。它表明navigator未定义。

我需要什么 Firefox 附加模块来获取用户代理,还是有其他方法可以在附加模块中找到它?

nma*_*ier 5

在SDK中,首先你需要的铬权威CcCi

const {Cc, Ci} = require("chrome");
Run Code Online (Sandbox Code Playgroud)

您可以使用nsIHttpProtocolHandler来从那里获取用户代理:

const httpproto = Cc["@mozilla.org/network/protocol;1?name=http"].
                  getService(Ci.nsIHttpProtocolHandler);

console.log(httpproto.userAgent);
Run Code Online (Sandbox Code Playgroud)

使用隐藏窗口和像这样的 hack 也可以,现在,但这有点混乱,并且在多进程的未来可能会出现问题。