2013-05-05 3 views
0

브라우저 이름 및 버전을 검색하는 jQuery 용 브라우저 플러그인을 사용하고 있습니다. 어쨌든 사용자가 특정 브라우저 및/또는 특정 버전을 사용하는 경우 메시지를 표시하려고합니다. 여기에 내가 무엇을 사용하고 있습니다 :AND 및 OR을 사용하여 Javascript if 문

if (($.browser.name == "msie" && $.browser.version <= "8.0") || $.browser.name == "safari" || $.browser.name == "opera") { 
    // Do something 
} 

IE9에서 오류 표시를 제외하고 모두 잘 작동하며 가정하지 않습니다. 버전 8.0 이하인 경우에만 표시하고 싶습니다. 이 성명서에 무슨 문제가 있습니까?

미리 감사드립니다.

EDIT : 이제 $ .browser.versionNumber를 사용하고 있지만 여전히 작동하지 않습니다. 이렇게 :

if (($.browser.name == "msie" && $.browser.versionNumber <= "8") || $.browser.name == "safari" || $.browser.name == "opera") { 
    // Do something 
} 

$ .browser.versionNumber는 숫자를 검색합니다. 이 경우 IE9를 사용하고 있으면 "9"를 보냅니다.

+0

은 플러그인 이름을 표시합니다. – steo

+0

http://jquery.thewikies.com/browser/ – coldpumpkin

+2

적어도'$ .browser.version <= "8.0"'문자열에는'<='을 사용할 수 없습니다. –

답변

3

는 문자열에 정의 된 <= 운영자가 없다.

문자열에 <= 연산자가 있지만 필요한 것은 아닙니다. 예를 들어 :

alert('2' <= '10'); // this yields false. 

이 솔루션은 $.browser.versionNumber을 사용하는 것입니다 :

browser.versionNumber : 브라우저의 버전 (참고, 정수로). 이처럼

:

if (($.browser.name == "msie" && $.browser.versionNumber <= 8) || $.browser.name == "safari" || $.browser.name == "opera") { 
    // Do something 
} 
+1

<=은 문자열에 대해 정의 된 연산자입니다. 숫자와 같은 방식으로 작동하지 않습니다. –

+0

효과가있었습니다. versionNumber를 사용하고 8에서 ""을 제거하면 트릭을 만들었습니다. 감사. – coldpumpkin

+0

@StevenMoseley는 수정 해 주셔서 감사합니다. 이에 따라 답변을 업데이트했습니다. – SoonDead

3

것은

어쩌면
"10.0" < "8.0" 

당신이 주 버전 번호 만에 intrested입니다, 당신은 것을 추출에서는 parseInt를 사용할 수있는 문자열을 비교하는 비교 번호 예를 들어

$.browser.version <= "8.0" 

다른 결과를 얻을 수 있음을 인식 .

+0

저는 versionNumber 문자열을 사용하고 있습니다.parseInt를 어떻게 사용할 수 있습니까? – coldpumpkin

-1

당신은 문자열에 "< ="사용하지 않아야합니다 :

다른 사람이 이미 언급했듯이
if (($.browser.name == "msie" && $.browser.version <= 8) || $.browser.name == "safari" || $.browser.name == "opera") { 
// Do something 
} 
0

는 IE9 호환성 및/또는 웹 사이트에 단점 모드에서 실행하고 있습니까?

이것은 이전 버전을 사용하고 있다고 생각하여 플러그인을 오도 할 수 있습니다.

+0

아니요. 버전 번호를 인쇄하면 9가 인쇄됩니다. – coldpumpkin

+1

이 경우'<= "보다는"<= 8 "을 테스트해야합니다 – Phylogenesis