해외 전문가 IE 버전 감지! 이제 IE가 9에 이르렀으니 IE 감지 code_javascript 기술

WBOY
풀어 주다: 2016-05-16 17:57:31
원래의
1196명이 탐색했습니다.

실제로 Daniu 소스 코드를 배우는 것은 좋은 진전이며 새로운 관점을 제공할 수 있습니다.
훌륭한 전문가가 작성한 IE 버전 감지에 대한 기사를 보고는 경악과 놀라움을 금할 수 없습니다. 이 짧은 코드에는 너무 많은 내용이 담겨 있습니다.
그래서 저는 다니엘과 가까워질 준비가 되어 있고 여전히 열심히 일하고 있는 IT 동료들이 더 많은 지식을 배울 수 있도록 다니엘의 소스 코드를 해석하기로 결정했습니다.

먼저 세계에서 가장 짧은 IE 감지 코드를 살펴보겠습니다:

코드 복사 코드는 다음과 같습니다. 다음과 같습니다:

var isIE = !-[1,];

매우 친숙한데 버그가 있고 ie9를 감지하지 못하는 이유는 무엇입니까? 이는 ie9 출시 이전에 해외 전문가들이 ie의 배열 변환 기능을 활용해 했던 일이기 때문이다. IE9에서 복구되어서 IE9에서는 무효가 되었는데 당시의 나처럼 아직도 한숨이 나오고 전문가들이 세세하게 연구하고 너무 심도깊게 말씀해주셨다. 가장 짧은 코드를 사용하여 함수와 메서드를 구현하고 끊임없이 수정하고 수정하지만 여전히...이것이 격차입니다. 격차입니다.
나는 세계에서 가장 짧은 IE 감지를 위해 이 코드를 해석하고 분석하지 않을 것입니다. 결국 현재 버그가 있으며 이전 버전과 호환되지 않습니다. 예를 들어 이론적으로 이전 버전과 호환되는 다음 IE 완벽한 감지에 중점을 둡니다. IE10으로 나오세요. 사용해 보세요. 문제 없습니다. 다시 격차를 그립니다.

먼저 소스코드를 살펴보겠습니다(다니엘의 생각을 해석하고 코드의 어려움에 대해서는 나중에 설명하겠습니다)
코드 복사 코드는 다음과 같습니다.

// -------------------------- -------- -------------
// JavaScript에서 IE 버전을 감지하기 위한 짧은 스니펫
// 사용자 에이전트 스니핑에 의존하지 않음
// ---------------------------------- -------- -----
// IE를 사용하지 않는 경우(또는 IE 버전이 5 미만인 경우):
// ie === 정의되지 않음
// IE(>=5)에 있는 경우 버전을 확인할 수 있습니다.
// ie === 7 // IE7
// 따라서 IE를 감지하려면:
// if (ie) {}
// 그리고 버전을 감지하려면:
// ie === 6 // IE6
// ie > ; 7 // IE8, IE9 .. .
// 즉 < 9 // IE9보다 작은 것
// -------------------- ------ ----------------
// 업데이트: 이제 @jdalton의 Live NodeList 아이디어를 사용합니다.
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i' );
while (
div.innerHTML = '',
모두[0 ]
)


what?while(표현1, 표현2) 이게 뭐죠? 우리가 배운 while(표현)과 다른가요?
팁, while에 표현이 여러 개 있을 경우 마지막 표현은 튀어나오기 판정으로 사용됩니다. 이전 표현은 아무리 많아도 튀어나오기 판정으로 사용되지 않습니다. 내부 코드가 실행됩니다.
예: while(표현식은 1, 표현식은 2, 표현식 3, 표현식 4) 표현식 4의 참 또는 거짓만 이스케이프 판단으로 사용됩니다.
편집 맙소사, 아직도 이럴 수 있어요, 경험이 쌓였으니 가서 빨리 해보세요. 이것이 다니엘의 코드입니다.
코드 몇 줄이면 됩니다. 정말 우아합니다. 원하는 지식을 배우고 시야를 넓힐 수 있기를 바랍니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿