Ваш код будет работать, но использование indexOf
- более старый, менее читаемый подход. Кроме того, использование let
здесь вводит в заблуждение, поскольку let
позволяет устанавливать изменяемые значения, в отличие от const
.
. Правильный способ сделать это будет -
const isGooglebot = window.navigator.userAgent.includes("Googlebot");
if (isGooglebot) {
// some code
}
Пояснение
- Мы объявляем постоянную переменную с именем
isGooglebot
- Затем мы получаем доступ к строке
window.navigator.userAgent
(которая совместима во всех браузерах) и проверьте, содержит ли он строку "Googlebot", взятую из Google Обзор Google Crawlers (ищите "Googlebot")
От MDN -
Заголовок запроса User-Agent является характерной c строкой, которая позволяет серверам и сетевым партнерам идентифицировать приложение, операционную систему, поставщика и / или версию запрашивающего пользовательского агента
Мы используем String.prototype.includes , который используется для определения, включен ли фрагмент текста в определенную строку.
Мы используем includes
, а не contains
, поскольку String.prototype.contains
устарело. Был конфликт имен между Firefox и MooTools. contains
был удален в Firefox 48 .