조건부 의견을 사용하여 IE의 버전을 결정하십시오. 글쎄, 누군가는 그것을 일찍 제안했지만 코드를 신중하게 보지 않았습니다. 어제 CSS3 파이를보고있을 때 나는 그것을 보았고, 그것이 신뢰할 수 없다고 생각했습니다. 나는 또한 오늘 Paul Irish가 언급 했으므로 추천합니다. 이것은 저자의 블로그에 작성되었습니다.
코드 사본은 다음과 같습니다.
// ------------------------------------------------------------------------------------------------------------------------------
// JavaScript의 IE 버전을 감지하기위한 짧은 스 니펫
// 사용자 에이전트 스니핑에 의지하지 않고
// ------------------------------------------------------------------------------------------------------------------------------
// IE에 있지 않은 경우 (또는 IE 버전이 5 미만) 다음 :
// 예 :== 정의되지 않았습니다
// IE (> = 5)에있는 경우 어떤 버전을 결정할 수 있습니다.
// 즉, === 7; // IE7
// 따라서 IE를 감지하려면 :
// if (예 :) {}
// 버전을 감지하려면 :
// 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');
하는 동안 (
div.innerhtml = '<!-[if ee' + (++ v) + ']> <i> </i> <! [endif]->',
모두 [0]
);
반환 v> 4? V : undef;
} ());
성명서에주의하십시오. 내가 가장 흥미로운 것입니다. 쉼표 운영자를 위해. 나는 그것에 익숙하지 않으며, 변수 정의의 사용에 붙어 있습니다. 예를 들어:
코드 사본은 다음과 같습니다.
var a = 'b', c = 'd', e = 'f';
var obj = {
A : 'B',
CD',
E : 'F'
}
나는 동료에게 @kangpangpang에게 물었고 책을 다시 확인했다. 실제로 이것은 비교적 드 rare니다. 일반적으로 마지막 값이 반환됩니다.
코드 사본은 다음과 같습니다.
var a = (1,2,3,5,6,0,9,4); // a === 4
글쎄, 아마도 그다. 매우 흥미 롭습니다.