2011-10-18 4 views
0

소스 코드 :올바른 구문 브라우저 스니핑 (createElement와는) <IE9

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && parseInt($.browser.version, 10)<7) 

편집 - 미안, 잘못된 코드를 기록했다.

위의 올바른 구성은 ie9 미만의 특정 브라우저에 맞습니까?

감사

편집 -

다음

위의 코드에 대한 이유 :

가 낮은 아무것도에서의 createElement 문제에 대한의
if (navigator.userAgent.toLowerCase().indexOf('msie') != -1) { 
        hidden = document.createElement('<input type="hidden" name="' + atName + '" value="' + attrId + '"/>'); 
       } else { 
        hidden = document.createElement("input"); 

하는

또한 IE9보다 I가 사랑 전체 기능을 다시 작성하지만, 범위 때문에 프로젝트에 포함되기 전까지는 파일을 다시 작성할 수 없습니다. 따라서이 한 줄을 다시 작성해야합니다. k 올바르게.

답변

1

AND은 (는) 잘못된 JavaScript 코드입니다. VERSION 어느 곳에서도 선언되지 않은 것 같습니다. 또한 특정 탐색기 나 버전에 대해 테스트하지 말고 브라우저에서 사용하려는 기능을 지원하는지 여부를 테스트 할 것을 권장합니다. 기능 탐지이라는 기술. 따라서 예를 들어 HTML5's canvas element을 사용하려면 브라우저가 XXX이고 버전이 YYY인지 테스트하지 마십시오. 브라우저가 HTML 캔버스 요소를 지원하는지 테스트합니다. Modernizr은이 작업을위한 훌륭한 라이브러리입니다.


UPDATE :

그리고 당신은 모범 사례에 대해 듣고 싶어하지 못하며,이 브라우저 버전 감지 주장 여전히 않는 경우 :

가 편집을 참조,이 방법이어야한다
if ($.browser.msie && parseInt($.browser.version, 10) < 9) { 
    alert('Warning, you are running a crap of a browser. Please upgrade!'); 
} 
+0

위의 코드. – Jason

+0

@Jason, 아니요, 이렇게해서는 안됩니다 :-) 그렇게해서는 안됩니다. 너는 그것을 후회하지 않을 것이다. –

+0

내 결정이 아님 - 전체 파일을 다시 쓸 수 없다.이 한 줄을 처리해야한다. – Jason