определение браузера серверной стороны? node.js

Большинство реализаций, которые я видел, для определения браузера на стороне клиента. Я просто задавался вопросом, было ли возможно сделать определение браузера прежде, чем отправить какие-либо ресурсы клиенту.

Спасибо.

59
задан 28 May 2011 в 21:47

2 ответа

[Вот другое изменение или ассимиляция для Вашего внимания.]

Это более универсально и упрощено далее.

можно передать Запрос или любой объект со свойством 'заголовков', или это могло быть свойство заголовков, и можно выбрать любую маркировку для поиска параметра на объекте или заголовках или самой фактической строке агента пользователя.

Это использовало ранее отправленный Мобильный телефон и Таблицу, Проверяющую Regex, и просто возвращает тот результат, но первым освящением входа, можно включить различные вещи.

можно даже переопределить значение по умолчанию regex дополнительно проходимый как аргумент. {Я оставлю то дальнейшее расширение вдохновленному.} Также можно было иметь другой способ принять значение по умолчанию к глобально сохраненному агенту пользователя от запроса, если бы в объеме и т.д.

mobTabCheck: function( ua, lbl, rgx ) {  /* mobile tablet check; UserAgent or request, or any object with optional search label  */
    if( ua === und ) return false;
    if( ua !== und && ua.constructor !== String ) {
        if( lbl === und ) lbl = 'user-agent';
        if( ua.headers !== und ) ua = ua.headers[ lbl ];
        else ua = ua[ lbl ];
    }
    if( rgx === und ) rgx = /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/;
    if( rgx.constructor === String ) rgx = new RegExp( rgx );
    return rgx.test( ua );
}

Этот Regex прибыл отсюда... https://gist.github.com/dalethedeveloper/1503252/931cc8b613aaa930ef92a4027916e6687d07feac

98%-е Решение. Я не знаю, проверяет ли это, что планшеты как мой функциональный заголовок подразумевают.

Действительно заголовок этой функции (и некоторые аргументы) должен быть, переименовывают, возможно?... serachObjectForLabelThatMatchesThisRegex

кроме всех значений по умолчанию делает это, отдельный аргумент ставил целью вещь.

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

let mobTabCheck = function() {};
0
ответ дан 1 November 2019 в 11:45

Powerfull npm useragent. Useragent позволяет, Вы для парсинга строки агента пользователя с высокой точностью при помощи руки настроили выделенные регулярные выражения для соответствия браузера. Эта база данных необходима, чтобы гарантировать, что каждый браузер правильно анализируется, поскольку каждый поставщик браузера реализует свою собственную схему агента пользователя. Поэтому синтаксические анализаторы агента обычного пользователя имеют главные проблемы, потому что они, скорее всего, проанализируют неправильное имя браузера или перепутают версию механизма рендеринга с фактической версией браузера.

0
ответ дан 1 November 2019 в 11:45

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

Похожие вопросы: