jQuery로 IE 8을 탐지하려면 어떻게 해야 합니까?
브라우저 종류뿐만 아니라 버전도 jQuery를 이용해서 감지해야 합니다.대부분 IE 8인지 아닌지 알아봐야 합니다.
제가 제대로 하고 있는지 잘 모르겠습니다.
다음을 수행하는 경우:
if (jQuery.browser.version >= 8.0) {
dosomething}
버전 8.123.45.6에서 작동할지 아니면 작동할지 확신할 수 없습니다.
편집: JQuery 2+가 IE8 이하에 대한 지원을 중단했기 때문에 IE8을 탐지하는 데 더 이상 사용할 수 없습니다.현재 버전의 JQuery를 사용하는 경우 Non-JQuery 솔루션을 사용해야 합니다.
가장 좋은 방법은 다음과 같습니다.
HTML5 보일러 플레이트에서:
<!--[if lt IE 7]> <html lang="en-us" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7]> <html lang="en-us" class="no-js ie7 oldie"> <![endif]-->
<!--[if IE 8]> <html lang="en-us" class="no-js ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
JS:
if( $("html").hasClass("ie8") ) { /* do your things */ };
특히 jQuery 1.9+에서 삭제된 이후로.
이는 모든 IE8 마이너 버전에서 작동해야 합니다.
if ($.browser.msie && parseInt($.browser.version, 10) === 8) {
alert('IE8');
} else {
alert('Non IE8');
}
-- 최신의
$.browser는 jQuery 1.9에서 제거되었음을 알려드립니다.
jQuery API Documentation에 문서화되어 있습니다.다음을 사용하여 Internet Explorer 확인$.browser.msie
그리고 그 버전을 확인합니다.$.browser.version
.
업데이트: $.browser는 jQuery 1.9에서 제거됨
jQuery.browser() 메서드는 jQuery 1.3 이후로 더 이상 사용되지 않으며 1.9에서 제거됩니다.필요한 경우 jQuery Migrate 플러그인의 일부로 사용할 수 있습니다. Modernizr와 같은 라이브러리와 함께 특징 탐지를 사용하는 것이 좋습니다.
HTML을 사용하여 IE8을 탐지할 수도 있다는 것을 잊지 마십시오.
<!--[if IE 8]>
<script type="text/javascript">
ie = 8;
</script>
<![endif]-->
스크립트를 모두 사용하기 전에 이를 사용하면 "즉" 변수를 확인할 수 있습니다.
document.documentMode는 브라우저가 IE8이 아닌 경우 정의되지 않습니다.
표준 모드의 경우 8을 반환하고 'IE7과 호환'의 경우 7을 반환합니다.
IE7로 실행 중이라면 지원되지 않는 CSS와 돔 기능이 많습니다.
가정하건데...
- ...이전 버전의 IE에서 스타일을 올바르게 보이도록(그렇지 않으면 기능 감지 사용) 원하는 것은 이전 버전의 IE의 크런치 렌더링 엔진이라는 점입니다.
- HTML에 조건부 코멘트만 추가할 수 없다는 것 - 예를 들어 모든 페이지에 적용할 수 있는 JS 플러그인(그렇지 않으면 조건부 클래스의 속임수를 수행합니다)
<body>
아니면<html>
)
...그렇다면 이것이 아마도 최고의 트릭일 것입니다. (이 비jQuery, 약간 덜 유연한 변형을 기반으로 함).다음에 대한 테스트를 생성한 다음 적절한 조건부 설명을 제거합니다.
(IE10+ '표준 모드'에서는 조건부 코멘트가 무시되지만, IE10+ '표준 모드'에는 미친 렌더링 엔진이 없기 때문에 괜찮습니다!)
다음 기능을 입력합니다.
function isIE( version, comparison ){
var $div = $('<div style="display:none;"/>');
// Don't chain these, in IE8 chaining stops some versions of jQuery writing the conditional comment properly
$div.appendTo($('body'));
$div.html('<!--[if '+(comparison||'')+' IE '+(version||'')+']><a> </a><![endif]-->');
var ieTest = $div.find('a').length;
$div.remove();
return ieTest;
}
그러면 이렇게 사용합니다.
if(isIE()){ /* runs in all versions of IE after 4 before standards-mode 10 */ }
if(isIE(8)){ /* runs in IE8 */ }
if(isIE(9)){ /* runs in IE9 */ }
if(isIE(8,'lte')){ /* runs in IE8 or below */ }
if(isIE(6,'lte')){ /* if you need this, I pity you... */ }
반복하지 않아도 되도록 이 기능의 결과를 캐싱하는 것도 제안합니다.예를 들어, 문자열을 사용할 수 있습니다.(comparison||'')+' IE '+(version||'')
이 테스트의 결과를 어딘가의 물체에 저장하고 확인하기 위한 키로서.
참고:
1) $.browser는 jQuery 1.9+에서 삭제된 것으로 보입니다(Mandeep Jain이 언급함).대신 .support를 사용하는 것이 좋습니다.
2) browser 달러입니다.버전은 브라우저가 "호환성" 모드일 때 IE >7에서 "7"을 반환할 수 있습니다.
3) IE 10 시점에서 조건부 코멘트는 더 이상 작동하지 않습니다.
4) jQuery 2.0+는 IE 6/7/8에 대한 지원을 중단합니다.
5) document.documentMode는 Internet Explorer 8+ 브라우저에서만 정의되는 것으로 보입니다.반환된 값은 Internet Explorer(인터넷 익스플로러)가 실행 중인 "호환성" 모드를 알려줍니다.그래도 좋은 해결책은 아닙니다.
여러 가지 .support() 옵션을 시도해 보았지만 IE 브라우저(9+)가 호환 모드일 때 IE 7처럼 간단히 동작하는 것 같습니다. :(
지금까지 나는 이것이 효과가 있다는 것을 발견했습니다.
documentMode가 정의되어 있지 않고 htmlSerialize 및 oppacity가 지원되지 않는 경우 IE <8...>을 볼 가능성이 매우 높습니다.
if(!document.documentMode && !$.support.htmlSerialize && !$.support.opacity)
{
// IE 6/7 code
}
당신이 브라우저 버전을 만지작거린다면 그것은 종종 좋은 결과를 낳지 못합니다.당신은 혼자서 그것을 실행하고 싶지 않을 겁니다.하지만 여러분은 폴 아이리쉬와 다른 똑똑한 사람들이 만든 모더니즈를 만들 수 있습니다.브라우저가 실제로 할 수 있는 것을 감지하고 적절한 클래스를 입력합니다.<html>
요소.그러나 Modernizr를 사용하면 다음과 같이 IE 버전을 테스트할 수 있습니다.
$('html.lt-ie9').each() {
// this will execute if browser is IE 8 or less
}
유사하게 사용할 수 있습니다..lt-ie8
,그리고..lt-ie7
.
jQuery.support도 봐야 합니다.브라우저 버전만 기록하려는 경우가 아니라면 기능을 코딩하는 브라우저 탐지보다 기능 탐지가 훨씬 신뢰성이 높습니다.
이 jquery를 사용하여 브라우저의 어떤 종류와 버전을 쉽게 탐지할 수 있습니다.
$(document).ready(function()
{
if ( $.browser.msie ){
if($.browser.version == '6.0')
{ $('html').addClass('ie6');
}
else if($.browser.version == '7.0')
{ $('html').addClass('ie7');
}
else if($.browser.version == '8.0')
{ $('html').addClass('ie8');
}
else if($.browser.version == '9.0')
{ $('html').addClass('ie9');
}
}
else if ( $.browser.webkit )
{ $('html').addClass('webkit');
}
else if ( $.browser.mozilla )
{ $('html').addClass('mozilla');
}
else if ( $.browser.opera )
{ $('html').addClass('opera');
}
});
다음은 브라우저/os 탐지를 식별하기 위한 Jquery 브라우저 탐지 플러그인입니다.
플러그인 포함 후 스타일링 용도로 사용 가능합니다.
$("html").addClass($.os.name);
$("body").addClass($.browser.className);
$("body").addClass($.browser.name);
$.browser를 사용하여 브라우저 이름을 탐지할 수 있습니다.가능한 값은 다음과 같습니다.
- 웹킷 (jQuery 1.4 기준)
- 사파리 (deprec)
- 오페라를
- 미씨
- 모질라
또는 부울 플래그를 가져옵니다. 브라우저가 MSIE이면 $.browser.msie가 true가 됩니다.
버전 번호는 주 릴리스 번호에만 관심이 있는 경우 parseInt($.browser)를 사용할 수 있습니다.버전, 10). $. browser를 파싱할 필요가 없습니다.버전 문자열을 입력합니다.
어쨌든 $.support 속성은 $.browser에 의존하지 않고 특정 기능에 대한 지원을 탐지할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2202305/how-do-i-detect-ie-8-with-jquery
'IT' 카테고리의 다른 글
UI 테스트 텍스트 필드의 텍스트 삭제 (0) | 2023.10.25 |
---|---|
워드프레스의 카테고리 슬러그에서 카테고리 이름을 얻는 방법은? (0) | 2023.10.20 |
(도커에 있는) 매리아드데이터베이스 수정 또는 재설정? (0) | 2023.10.20 |
게시된 사용자 지정 게시글 수에 따라 워드프레스 작성자 순서 가져오기 (0) | 2023.10.20 |
MySQL - 표의 id 필드에 상대가 없는 숫자 목록에서 선택 (0) | 2023.10.20 |