我正在为FireFox构建一个模拟网站的附加组件,但是从本地库运行。 (如果您想了解更多,look here)
我正在寻找一种方法来获取FireFox 发送的用户代理字符串,如果它正在执行普通的http。我自己在做nsIProtocolHandler并提供我自己的nsIHttpChannel实现,所以如果我有a peek at the source,看起来我必须自己完成所有的工作。
除非在nsHttpHandler上有一个合同/对象id,否则我可以用一段时间创建一个实例来获取UserAgent? (虽然我注意到我需要调用Init()
,因为它确实InitUserAgentComponents()
并且希望它会到达那里......而且我想http协议处理程序会执行通道和处理程序以便赢得' t直接与nsHttpHandler达成合同。)
如果我对墙上有一些偷看,我会注意到这个全球可用的电话ObtainUserAgentString,它在这个平行维度中做到这一点......
答案 0 :(得分:3)
显然是Firefox changed如何在版本4中完成此操作。您是否尝试过:
alert(window.navigator.userAgent);
答案 1 :(得分:3)
你可以通过XPCOM这样得到它:
var httpHandler = Cc["@mozilla.org/network/protocol;1?name=http"].
getService(Ci.nsIHttpProtocolHandler);
var userAgent = httpHandler.userAgent;
答案 2 :(得分:1)
如果出于某种原因,您确实需要使用您在标签中建议的NPAPI,您可以使用NPN_UserAgent来获取它;但是,如果你真的需要这样做只是为了扩展,我会感到震惊。最有可能安东尼的答案更多的是你正在寻找的。 p>