일반적이고 대부분의 브라우저 스니핑 기법은 각 브라우저에서 지원하는 DOM의 차이점을 이용하여 활용하고 있습니다.  

그리고 최근 Ajaxian.com 을 통해 소개된 기사에서는 JavaScript 만을 이용한 스니핑 방법을 소개하고 있습니다.


꾀 오래전에 Opera의 Array의 Slice 메소드가 IE, FF, Safari와 다르게 동작하여 피드백을 해놨는데 답변이 없더니 패치는 된것 같습니다.

이렇듯 현대 주(major) 브라우저의 자바스크립트는 ECMA Script 262-2 Spec을 따르고 있는데요.  이 JavaScript 역시 브라우저마다 작은 차이점들을 가지고 있습니다.  

//Firefox detector 2/3 by DoctorDan
FF=/a/[-1]=='a'

//Firefox 3 by me:-
FF3=(function x(){})[-5]=='x'

//Firefox 2 by me:-
FF2=(function x(){})[-6]=='x'

//IE detector I posted previously
IE='\v'=='v'

//Safari detector by me
Saf=/a/.__proto__=='//'

//Chrome by me
Chr=/source/.test((/a/.toString+''))

//Opera by me
Op=/^function \(/.test([].sort)

소개된 코드들은 상당한 테스트와 분석에서 나온 결과물이 아닐까 생각이 듭니다.

더보기




신고
Posted by Rhio.kim