浏览器检测脚本 (仅!) 在 Pale Moon 32.x 上出现故障

在我访问的大多数使用 Pale Moon 32.x 的 Discourse 实例上,我最初会看到一个残缺的视图,顶部有一个“浏览器太旧”的横幅。然而,这是 browser-detect JS 的误报,因为使用 adblocker 禁用 /assets/browser-detect-<hash>.br.js 可以使网站功能齐全。(正如预期的那样,因为 Pale Moon 支持大多数现代 Web 标准。)

换句话说,您编写了一个可以在现代浏览器上运行的网站,但随后通过 90 年代的用户代理嗅探将其任意限制在精选的浏览器列表中。这产生了限制用户自由和支撑谷歌在网络上近乎垄断地位的意外副作用。请修复此问题!

我们不会随意限制浏览器。我们使用功能检测来确定浏览器是否支持 Discourse 所依赖的所有现代 Web API。我们当前的检查是:

因此,Pale Moon 必须缺少其中一项功能。

7 个赞

啊,我明白了。感谢您的及时回复,纠正了我的误解!

只有 CSS.supports("aspect-ratio: 1") 为 false。我必须承认,您需要检测这一点让我感到困惑,尤其是当我查找依赖它的样式时,我在 CSS 中发现了许多带有 @supports not (aspect-ratio: 1) {/*...*/} 块的地方,这似乎可以解释为什么尽管缺少 aspect-ratio 支持,网站的外观仍然很好。(尽管我广泛地在 PM 和其他浏览器中使用 Discourse,但我从未注意到任何视觉问题。)

2 个赞