Internet Explorer
v9 이전 버전을 사용하는 경우 웹 사이트 사용자를 오류 페이지로 반송하고 싶습니다 . 지원하는 데 시간과 돈이 가치가 없습니다 IE pre-v9
. 다른 모든 비 IE 브라우저의 사용자는 문제가 없으며 반송해서는 안됩니다. 제안 된 코드는 다음과 같습니다.
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
이 코드가 트릭을 수행합니까?
아마 내 방식으로 올 몇 가지 의견을 제시하기 위해 :
- 예, 사용자가 위조 할 수 있음을 알고 있습니다
useragent
문자열을 . 걱정하지 않습니다. - 예, 프로그래밍 전문가가 브라우저 유형 대신 기능 지원을 스니핑하는 것을 선호하지만이 경우이 접근법이 의미가 있다고 생각하지 않습니다. 모든 (관련) 비 IE 브라우저가 필요한 기능을 지원한다는 것을 이미 알고 있습니다.
pre-v9 IE
브라우저가 지원하지 않는 있습니다. 사이트 전체에서 기능별로 기능을 확인하는 것은 낭비입니다. - 예, 누군가가
IE v1
(또는> = 20)을 은 'badBrowser'가 true로 설정되지 않고 경고 페이지가 제대로 표시되지 않습니다. 그것은 우리가 기꺼이 감수 할 위험입니다. - 예, Microsoft에는 정확한 브라우저 버전 감지에 사용할 수있는 "조건부 주석"이 있다는 것을 알고 있습니다. IE는 더 이상 조건부 주석을 지원하지
IE 10
않으므로이 방법은 전혀 쓸모가 없습니다.
알아야 할 다른 명백한 문제가 있습니까?