2014-01-20 1 views
0

Я использую Modify Headers plugin для Firefox, чтобы изменить агента-пользователя. Причина, по которой мне нужно это сделать (для тестирования), заключается в загрузке разных css в зависимости от того, является ли это iOS или телефоном Android.Javascript navigator.userAgent всегда показывает тот же агент в Firefox

Запуск этого сценария

<script type="text/javascript"> 
    var agent = navigator.userAgent.toLowerCase(); 
    alert(agent); 
    </script> 

Я всегда получаю этот выход:

Mozilla/5.0 (Windows NT 6.1; WOW64; кемперов: 26.0) Gecko/20100101 Firefox/26,0

, хотя я могу видеть следующее в Thunderbird:

User-Agent: Mozilla/5.0 (iPad; OS CPU 5_1, как Mac OS X) AppleWebKit/534,46 (KHTML, как Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3

Является ли это Firefox конкретный вопрос?

+2

Я не понимаю. Вы спрашиваете, является ли тот факт, что ваш плагин firefox не работает, - это проблема Firefox? –

+1

Да, или если это неправильное использование 'navigator.userAgent' для обнаружения устройства. – Steven

+0

@Steven - В целом считается неправильной практикой использовать строку пользовательского агента для обнаружения устройства/браузера. Код должен быть написан для адаптации к возможностям браузера, на котором он запущен, без использования строки пользовательского агента, то есть с использованием обнаружения функций, а не обнаружения браузера. Такие инструменты, как Modernizr, могут помочь в этом. (есть несколько случаев, когда обнаружение браузера все еще может потребоваться, но они редки и в основном ограничены старыми версиями IE) – Spudley

ответ

1

Изменение пользовательского агента через заголовки действительно изменит строку UA, которую видит сервер.

Однако это не означает, что вы фактически меняете строку агента пользователя, о которой знает браузер.

Вы запрашиваете строку UA через javascript; который будет получать фактическую строку UA в браузере; не имеет ничего общего с заголовками, которые были отправлены на сервер.

Если вы хотите правильно заменить строку UA, есть firefox extensions that specialise in doing so. Я предлагаю вам использовать один из них, а не общий расширитель заголовка заголовка.

+0

А, спасибо. Это отлично поработало. – Steven

Смежные вопросы