>  기사  >  웹 프론트엔드  >  js, 즉 non-ie browsers_javascript 기술에 대한 여러 판단 방법 요약

js, 즉 non-ie browsers_javascript 기술에 대한 여러 판단 방법 요약

WBOY
WBOY원래의
2016-05-16 18:26:401188검색

최근 Situ Zhengmei js The World's Shortest IE Browser Determination Code 기사에서 6바이트만 가지고 ie인지 아닌지를 판단하는 방법을 봤습니다. 코드는 다음과 같습니다.


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]



사실 판단하는 방법은 여러 가지가 있는데, 대부분 브라우저의 특성을 기준으로 합니다.

예를 들어 라이브러리 프로토타입 메서드는 !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 입니다. IE에서는 청취 이벤트 추가를 위해 window.attachEvent를 지원하고, IE가 아닌 경우에는 window.addEventListener를 사용하여 청취 이벤트를 추가한다는 점을 기준으로 판단됩니다. navigator.userAgent.indexOf('Opera') === -1은 opara 브라우저가 자신을 ie로 위장할 수 있기 때문입니다. !!(window.attachEvent)가 true이면 반대로 !window.addEventListener가 true입니다. , 그것은 또한

Ext가 !"1"[0]을 사용한다고 판단할 수 있는데, 이는 IE가 문자열에 액세스하기 위해 배열 첨자를 사용할 수 없다는 점을 활용하여 판단됩니다. ie8에서는 문제가 있는 것 같습니다.

! [1,]이 발견되기 전에는 IE를 판단하는 가장 짧은 표현이 ! "v1"이었습니다. IE가 세로 탭 문자를 지원하지 않는다는 점을 이용했습니다.

과거에는 Opera 브라우저가 IE로 위장할 수 있기 때문에 흔히 사용되는 또 다른 방법은 document.all이었습니다. 다음과 같이 작성할 수 있습니다:!!(document.all && navigator.userAgent.indexOf('Opera') === -1).

더 많은 것이 있으므로 먼저 쉽게 참조할 수 있도록 다음 몇 가지를 기억하십시오. 일하다.

1. [1,]

2.! "v1"

3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') = == -1)

4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
<script> if(!+[1,])alert("这是ie浏览器");    else alert("这不是ie浏览器"); </script>5.!!(document.all && navigator.userAgent.indexOf('오페라') === -1)
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.