2014-01-20 1 views
0

Firefox의 경우 사용자 에이전트를 변경하기 위해 Modify Headers plugin을 사용하고 있습니다. 테스트를 위해이 작업을 수행해야하는 이유는 iOS 또는 Android 폰인지에 따라 다른 CSS를로드하는 것입니다.Javascript navigator.userAgent는 항상 Firefox에서 동일한 에이전트를 표시합니다.

이 스크립트

<script type="text/javascript"> 
    var agent = navigator.userAgent.toLowerCase(); 
    alert(agent); 
    </script> 
실행 난 항상이 출력을 얻을

:

모질라/5.0 (윈도우 6.1 NT; WOW64; RV : 26.0)/20100101 파이어 폭스/도마뱀을 26.0

썬더 버드에서 볼 수있는 내용은 다음과 같습니다.

사용자 에이전트 : Mozilla/5.0 (iPad; 맥 OS X와 ​​같은 CPU의 OS 5_1) AppleWebKit/534.46 (KHTML, 게코) 버전/5.1 모바일/9B176 사파리/7534.48.3

처럼이 파이어 폭스 특정 문제인가?

+2

나는 그것을 얻지 않는다. 파이어 폭스 플러그인이 작동하지 않는 것 같은 사실이 파이어 폭스와 관련된 문제인지 물어 본다. –

+1

예 - 또는 장치를 탐지하기 위해'navigator.userAgent'를 잘못 사용한 경우. – Steven

+0

@Steven - 일반적으로 사용자 에이전트 문자열을 사용하여 장치/브라우저 검색을 수행하는 것이 좋지 않은 것으로 간주됩니다. 사용자 에이전트 문자열을 사용하지 않고 (즉, 브라우저 감지보다는 기능 감지 사용) 실행중인 브라우저의 기능에 맞게 코드를 작성해야합니다. Modernizr과 같은 도구가이 문제를 해결할 수 있습니다. (브라우저 탐지가 여전히 필요할 수도있는 몇 가지 경우가 있지만, 희귀하고 주로 이전 IE 버전에만 국한 됨) – Spudley

답변

1

헤더를 통해 사용자 에이전트를 수정하면 실제로 서버가 보는 UA 문자열이 변경됩니다.

그러나 실제로 브라우저가 알고있는 사용자 에이전트 문자열을 변경하고있는 것은 아닙니다.

javascript를 통해 UA 문자열을 쿼리하고 있습니다. 브라우저에서 실제 UA 문자열을 가져옵니다. 서버로 전송 된 헤더와 관련이 없습니다.

UA 문자열을 올바르게 재정의하려면 firefox extensions that specialise in doing so이 있습니다. 일반 헤더 무시 확장이 아닌 그 중 하나를 사용하는 것이 좋습니다.

+0

아, 고마워요. 그 일은 훌륭했습니다. – Steven

관련 문제