我们不应该根据浏览器的 User-Agent 字符串进行任何决策。但是,你知道,集体,我们确实这样做了。
Karl Dubost 指出,他们即将发生重大变化,特别是将版本整数移到两位数之后。
根据 火狐发布日历,在2022年第一季度(可能是3月),火狐夜间版将达到100版本。它将设定火狐稳定版发布版本大约在2022年5月(如果在此之前没有更改)。
而且 Chrome 发布日历 将当前日期设定为 2022年3月29日。
所以,我们将看到类似以下的 UAs
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:100.0) Gecko/20100101 Firefox/100.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36
一个糟糕的正则表达式肯定会让一些人中招。但正如 Karl 指出的那样,即使是字符串比较也会抓住一些人。
"80" < "99" // true
"80" < "100" // false
parseInt("80", 10) < parseInt("99", 10) // true
parseInt("80", 10) < parseInt("100", 10) // true
也许你应该搜索一下你的代码库中是否存在 navigator.userAgent
,看看你在做什么。
在 Chromium 96 及更高版本中,您可以翻转
chrome://flags/#force-major-version-to-100
标志,以便在发送声称版本为 100 的 User-Agent 字符串时测试网站。使用 jQuery Reject 插件的网站已知存在问题。