Firefox 中有一个名为 User Agent Switcher 的插件,可以将网络服务用作 Google bot、Yahoo Slurp 或 Iphone/Android 用户。任何人都可以指导我如何在后台工作。它为执行此任务而修改的属性/属性是什么?
2 回答
用户代理切换器设置了一堆首选项:
general.useragent.appName
general.appname.override
general.appversion.override
general.platform.override
general.useragent.override
general.useragent.vendor
general.useragent.vendorSub
这些替换了用户代理字符串的各个部分——就这么简单。其代码中的其他所有内容都是用户界面和选择逻辑。实际上,我不确定为什么选择这种复杂的方法:仅设置general.useragent.override
就足够了,它的值将替换整个用户代理字符串。
您可以使用自己轻松创建该首选项about:config
,本文详细介绍了这些步骤。
让我回答弗拉基米尔帕兰特的回答中的问题。
简而言之,UserAgentSwitcher 的设计似乎遵循了过去已经过时的 firefox(或一般的浏览器)规范。
现在详细说明:根据MDN 关于 userAgent 的页面,Firefox 的用户代理是由 Wladimir 提到的组件构建的,如:userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU; Localization; rv: revision-version-number) product/productSub Application-Name Application-Name-version
.
但截至 2015 年 8 月,这是错误的;据我测试,用户代理只能被覆盖general.useragent.override
,并且这些元素被忽略。
尽管如此,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>
MDN 的另一个页面说这些现在已从 Web 标准中删除,但大多数浏览器仍然支持它们。有关主要浏览器的典型值,请参见例如此站点。(这个页面是日文的,但那一定没问题。随意修改。)
Probably readers know that most sites change their behavior by checking the useragent value but it's merely a rule of thumb, not reliable both for web designers and page visitors.