我的Web应用程序与Firefox 3.6+兼容
我们在当地的一个机器上安装了一个Firefox,在about页面的顶部,版本设置为3.6.10,这正是我们所期望的。
在about页面的底部,版本设置为:Gecko / 20100914 Firefox / 3.0.1
因为它被设置为3.0.1,所以它被客户端脚本拾取并且用户无法使用该应用程序。目前我无法复制这个。
我们的猜测是用户没有从头开始安装3.6.10,而是从3.0.1更新
之前有没有其他人遇到过这个问题?
谢谢
编辑:Gecko版本是Firefox 3.6附带的“Gecko 1.9.2”...所以这也很好....非常困惑
编辑2:IIS LOG 的Mozilla / 5.0 +(视窗; + U +视窗+ NT + 6.1; + RU + RV:1.9.2.10)。+壁虎/ 20100914 +火狐/ 3.0.1 +(+ NET + CLR + 3.5.30729; + .NET4.0C)200 0 0
我可以看到3.0.1,但我不明白为什么关于页面显示浏览器版本为3.6.10
另外,如果从IIS日志中查看GECKO版本,它是1.9.2,随Firefox 3.6一起提供。*
编辑3:问题出在FireFox .config文件中,该文件已手动编辑/欺骗
答案 0 :(得分:1)
至少有两种方法可以检查浏览器版本。
一种是使用来自HTTP请求的User-Agent
标头:
GET /index.html HTTP/1.1
Host: localhost:8765
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729; .NET4.0E)
...
但是这样的请求可以通过某些代理或用户来改变(这样Opera可以很容易地模仿MS IE等)。
其他方式是使用JavaScript导航器属性。它描述于:Using the navigator object to detect client's browser。
我不知道用哪种方式来检测浏览器版本。如果它来自HTTP标头,则很容易更改 - 您可能必须将浏览器版本检测更改为JavaScript。如果JavaScript失败,那么这个浏览器安装可能会被破坏。
您可以检查服务器端的HTTP标头(Apache通常配置为在日志中显示此标头)或通过像tcpmon这样的隧道。对于JavaScript,请使用JavaScript Kit页面中的代码。
答案 1 :(得分:1)
我强烈怀疑您的客户端有一个修改后的用户代理字符串。您可以重置by following these instructions。