Я хочу добавить пользователей нашего веб-сайта на страницу с ошибкой, если они используют версию 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
, что делает этот подход абсолютно бесполезным.
Любые другие очевидные проблемы, о которых нужно знать?