不推荐的Javascript操作系统检测技术

不推荐的Javascript操作系统检测技术,javascript,browser,browser-detection,navigator,os-detection,Javascript,Browser,Browser Detection,Navigator,Os Detection,我想知道为什么像navigator.userAgent、navigator.appName、navigator.appVersion和navigator.platform这样的javascript操作系统检测技术正在从web标准中删除 如果您访问所有导航器道具,您可以看到 已弃用 此功能已从Web标准中删除。尽管某些浏览器可能仍然支持它,但它正在被删除。不要在旧项目或新项目中使用它。使用它的网页或Web应用程序可能随时中断 所以我想知道 为什么他们要移除这个 他们会引入一种新的操作系统检测方法

我想知道为什么像navigator.userAgentnavigator.appNamenavigator.appVersionnavigator.platform这样的javascript操作系统检测技术正在从web标准中删除

如果您访问所有导航器道具,您可以看到

已弃用

此功能已从Web标准中删除。尽管某些浏览器可能仍然支持它,但它正在被删除。不要在旧项目或新项目中使用它。使用它的网页或Web应用程序可能随时中断

所以我想知道

  • 为什么他们要移除这个
  • 他们会引入一种新的操作系统检测方法吗
  • 即使这些技术已被弃用,我也可以使用它们吗

  • 可能在很多情况下,我们需要了解操作系统的版本。

    我认为一般的想法是,它变得不必要了。至少从理论上讲,在任何浏览器中都不应该有任何与其他浏览器不同的功能——至少在JavaScript中是这样

    你通常会在浏览器中嗅探功能,有很多方法可以找到大部分功能,而不必从梦魇般的
    userAgent
    中推断出任何东西


    因此,它可能会被弃用,也可能不会。但是不必嗅探浏览器是个好主意。那些东西很快就会变得很复杂。即使它确实被弃用了,它也可能会保留几十年,这样仍然依赖它的一半web不会崩溃和烧坏。

    它在MDN上被错误地或意外地标记为弃用。他们一看到问题就很快更正了页面,但因为它是一个确定的来源,所以对它的引用仍然到处存在

    下面是一段被修复的对话:

    虽然这是一个好问题,但这可能不是问这个问题的合适地方。除了没有需要解决的问题之外,这也是自以为是的,因为除了负责起草web标准的人之外,没有任何人可以告诉你他们的理由。它还处于伪装成咆哮的边缘。@JKirchartz:我所见过的平台检测的唯一真实(而不是过时)用例是在提供可下载软件时:通过检测,您可以默认使用用户查看页面时使用的平台(比如Linux)(同时仍然允许他们导航到其他平台[比如Windows])@T.J.Crowder:因此,您可以在服务器端轻松完成,我想这仍然会有userAgent。我想我们在这里都站在同一个页面上。我投票结束这个问题,因为前提是
    navigator
    的操作系统检测方面不受欢迎,但无论是规范还是MDN都没有指出与操作系统相关的主要属性,
    navigator.platform
    ,实际上已经被弃用。