Firefox中用户代理切换器的工作原理

Firefox中用户代理切换器的工作原理,firefox,firefox-addon,user-agent,user-agent-switcher,Firefox,Firefox Addon,User Agent,User Agent Switcher,firefox中有一个名为User Agent Switcher的插件,可以将web服务用作Google机器人、Yahoo Slurp或Iphone/Android用户。 有谁能告诉我它在后台是如何工作的吗。 为执行此任务,它修改了哪些属性/属性?用户代理切换器设置了一系列: general.useragent.appName general.appname.override general.appversion.override 通用平台覆盖 general.useragent.overrid

firefox中有一个名为User Agent Switcher的插件,可以将web服务用作Google机器人、Yahoo Slurp或Iphone/Android用户。 有谁能告诉我它在后台是如何工作的吗。
为执行此任务,它修改了哪些属性/属性?

用户代理切换器设置了一系列:

general.useragent.appName
general.appname.override
general.appversion.override
通用平台覆盖
general.useragent.override
general.useragent.vendor
general.useragent.vendorSub

它们取代了用户代理字符串的各个部分——就这么简单。其代码中的所有其他内容都是用户界面和选择逻辑。实际上,我不确定为什么选择这种复杂的方法:只设置
general.useragent.override
就足够了,它的值将替换整个用户代理字符串


您可以使用
about:config
轻松创建该首选项,详细描述了这些步骤。

让我回答中的问题

简言之,UserAgentSwitcher的设计似乎遵循了firefox(或一般浏览器)过去的规范,现在已经过时了

现在详细信息:根据,Firefox的useragent是由Wladimir提到的组件构建的,如:
useragent=appCodeName/appVersion number(平台;安全;OS或CPU;本地化;rv:修订版本号)product/productSub应用程序名应用程序名版本

但截至2015年8月,这是错误的;就我所测试的而言,只能从
general.useragent.override
重写useragent,并且忽略这些元素

尽管如此,Javascript还是披露了它们:

Javascript element      Firefox preference
navigator.appCodeName   ?
navigator.appName       general.appname.override
navigator.appVersion    general.appversion.override
navigator.platform      general.platform.override
navigator.product       ?
navigator.productSub    ?
navigator.vendor        general.useragent.vendor
navigator.vendorSub     general.useragent.vendorSub</code></pre>
说这些现在已经从网络标准中删除了,但是大多数浏览器仍然支持它们。有关主要浏览器的典型值,请参见示例。(本页为日文,但一定没问题。请随意修改。)

读者可能知道,大多数网站通过检查useragent值来改变其行为,但这只是一条经验法则,对网页设计师和页面访问者来说都不可靠