Принцип решения:
JavaScript — основной язык фронтенд-разработки. Мы можем определить тип и версию браузера, написав программы на JavaScript. Обычно существует два способа определения типа браузера в JavaScript: один основан на уникальных атрибутах различных браузеров, а другой определяется путем анализа атрибута userAgent браузера. Во многих случаях после того, как тип браузера определен по значению, необходимо определить версию браузера для решения проблем совместимости, а версию браузера обычно можно узнать только путем анализа userAgent браузера.
Тип браузера
⑴ Атрибуты, специфичные для браузера.
⑵По данным userAgent
Версия браузера
⑴По данным userAgent
Решение для мобильных браузеров
1. Как определить, мобильный ли это терминал, используя обычное совпадение?
Соответствует тому, содержит ли navigator.userAgent строку AppleWebKit*****Mobile.
HD-версия браузера Android qq имеет только AppleWebKit
2. Оценка языковой версии мобильного телефона.
Используйте navigator.browserLanguage, чтобы получить языковую версию Windows Phone.
Конечно, ненавистная маленькая языковая версия для мобильных телефонов также имеет различия в совместимости. Браузеры, совместимые с ядрами Mozilla и Apple WebKit, будут отображать navigator.language при доступе к своей языковой версии.
КОД:
Скопируйте код кода следующим образом:
<тип сценария="текст/javascript">
вар браузер={
версии: функция() {
вар u = navigator.userAgent, приложение = navigator.appVersion;
return { //Информация о версии браузера мобильного терминала
трезубец: u.indexOf('Trident') > -1, //ядро IE
presto: u.indexOf('Presto') > -1, //ядро оперы
webKit: u.indexOf('AppleWebKit') > -1, //Apple, ядро Google
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //ядро Firefox
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //Независимо от того, является ли это мобильным терминалом
ios: !!u.match(//(i[^;]+;( U;)? CPU.+Mac OS X/), // терминал iOS
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //терминал Android или браузер UC
iPhone: u.indexOf('iPhone') > -1 , //Независимо от того, iPhone это или браузер QQHD
iPad: u.indexOf('iPad') > -1, //будь то iPad
webApp: u.indexOf('Safari') == -1 //Должен ли веб быть программой без заголовка и низа
};
}(),
язык:(navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln("Языковая версия: "+browser.language);
document.writeln(" Мобильный ли это терминал: "+browser.versions.mobile);
document.writeln(" ios терминал: "+browser.versions.ios);
document.writeln(" терминал Android: "+browser.versions.android);
document.writeln(" Будь то iPhone: "+browser.versions.iPhone);
document.writeln(" iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
</скрипт>
Довольно особенное место
UC Browser не имеет заголовка Android и возвращает только: linux. Здесь грубо предполагается, что это Android на базе Linux (необходимо наличие мобильного терминала, и UC это устраивает).
Результаты обнаружения версии Android QQ Browser HD: Mac, Safari.