# 浏览器更好副本是“太旧了，无法在此网站上运行”

**URL:** <https://meta.discourse.org/t/better-copy-for-browser-is-too-old-to-work-on-this-site/232968>\
**Category:** UX\
**Created:** [2022 年7 月 15 日 12:47 UTC](https://meta.discourse.org/t/better-copy-for-browser-is-too-old-to-work-on-this-site/232968 "2022-07-15T12:47:08Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

作者： ![Logological](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/logological/32/267144_2.png) [@Logological](https://meta.discourse.org/u/Logological)\
发布日期： [2022 年7 月 15 日 12:47 UTC](https://meta.discourse.org/t/better-copy-for-browser-is-too-old-to-work-on-this-site/232968/1 "2022-07-15T12:47:08Z")

</div>

今天登录 [SDMB](https://boards.straightdope.com/)（也尝试了 [try.discourse.org](http://try.discourse.org)），我收到了以下消息：

> 很抱歉，您的浏览器太旧，无法在此网站上运行。请升级您的浏览器以查看丰富内容、登录和回复。

然而，我使用的是最新版本的浏览器 SeaMonkey 2.53.13，该版本仅在四天前发布。Discourse 可能选择不支持它，但说它“太旧”而无法与 Discourse 配合使用是错误的。事实上，如果我覆盖浏览器的 User-Agent 字符串，我会发现一切似乎都能正常工作。

问题似乎出在 Discourse 的 User-Agent 嗅探不准确。默认情况下，SeaMonkey 的 User-Agent 字符串会宣传 Firefox 兼容性：

> Mozilla/5.0 (X11; Linux x86\_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13

如果我通过“编辑-\>首选项-\>高级-\>HTTP 网络-\>用户代理字符串-\>标识为 SeaMonkey”将 User-Agent 字符串更改为隐藏 Firefox 兼容性，那么 SeaMonkey 就可以再次访问 Discourse 网站，而不会出现任何明显问题：

> Mozilla/5.0 (X11; Linux x86\_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13

我理解 Discourse 可能不希望支持 SeaMonkey 这样不再主流的浏览器，但如果这些浏览器不被主动阻止访问 Discourse 网站就好了。即使这些浏览器被主动阻止，Discourse 也不应该报告一个错误的阻止原因。

请改进 User-Agent 嗅探，使其在决定用户代理是否“太旧”之前检查字符串的末尾。（我怀疑它目前只是查找受支持浏览器的名称和版本，而不管它们在 User-Agent 字符串中的位置。）毕竟，您并没有因为浏览器在字符串开头报告旧版本的 Mozilla 而阻止它们，那么为什么还要因为它们在字符串中间报告旧版本的 Firefox 而阻止它们呢？

如果出于某种原因更改嗅探算法是不可取或不切实际的，那么请在检测到所谓的“不兼容用户代理”时更改行为：不要（可能错误地）告诉用户他们的浏览器“太旧”并阻止进一步访问，而是告诉用户他们的浏览器“不受支持”，并链接到支持的浏览器列表，但让他们选择继续使用他们现有的浏览器。

---

_[View the full topic](https://meta.discourse.org/t/better-copy-for-browser-is-too-old-to-work-on-this-site/232968)._
