Устаревшие методы обнаружения ОС Javascript

Мне было интересно, почему методы обнаружения JavaScript, такие как navigator.userAgent, navigator.appName, navigator.appVersion и navigator.platform, находятся в процессе удаления из веб-стандартов.

https://developer.mozilla.org/en-US/docs/Web/API/Navigator

Если вы посетите каждый из этих реквизитов навигатора, вы можете увидеть

Устаревшие

Эта функция была удалена из веб-стандартов. Хотя некоторые браузеры все еще могут поддерживать его, он находится в процессе удаления. Не используйте его в старых или новых проектах. Страницы или веб-приложения, использующие его, могут сломаться в любое время.

Так что я хотел бы знать

  1. Почему они это удаляют
  2. Будут ли они вводить новый способ обнаружения ОС
  3. Могу ли я использовать эти методы, даже если они устарели.

Вероятно, во многих случаях нам нужно знать версию ОС.

3 ответа

Он был неправильно или случайно помечен как устаревший в MDN. Они быстро исправили страницу, как только увидели проблему, но, поскольку это был окончательный источник, ссылки на нее как устаревшие по-прежнему существуют здесь и там.

Вот разговор, где это было исправлено: https://groups.google.com/forum/

Вы можете использовать:

      navigator.userAgentData.platform

Я думаю, что общее мнение состоит в том, что это становится ненужным. Теоретически, по крайней мере, не должно быть никакой функциональности, которая работает по-разному в любом браузере по сравнению с любым другим браузером - по крайней мере, не для JavaScript.

То, что вы обычно просматриваете в браузере, - это функции, и есть множество способов найти большинство этих вещей без необходимости делать выводы из кошмара, который userAgent,

Так что это может быть устаревшим, а может и нет. Но это хорошая идея, чтобы не нюхать браузер. Этот материал может стать очень сложным очень быстро. Хотя даже если он станет устаревшим, он, вероятно, останется на несколько десятилетий, так что половина сети, которая все еще полагается на него, не рушится и не горит.

Другие вопросы по тегам