Я хочу повернути користувачів нашого веб-сайту на сторінку помилок, якщо вони використовують версію 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
рядок. Мене не хвилює. - Так, я знаю, що профі програмування вважають за краще нюхати підтримку функцій замість типу браузера, але я не думаю, що цей підхід має сенс у цьому випадку. Я вже знаю, що всі (відповідні)
pre-v9 IE
броузери, які не належать до IE, підтримують потрібні мені функції та відсутність усіх браузерів. Функція перевірки за функціями на всьому сайті буде марною. - Так, я знаю, що той, хто намагається зайти на сайт за допомогою
IE v1
(або> = 20), не встановить "badBrowser" на "true", а сторінка попередження не відображатиметься належним чином. Це ризик, який ми готові взяти на себе. - Так, я знаю, що Microsoft має "умовні коментарі", які можна використовувати для точного виявлення версії браузера. IE більше не підтримує умовні коментарі
IE 10
, що робить цей підхід абсолютно марним.
Будь-які інші очевидні проблеми, які слід знати?