В разработке веб-сайта, проблемы совместимости браузера, уже заставили нас спешить, и я не знаю, сколько трудностей это вызовет нас. Совместимость браузера-это первая проблема, которую необходимо решить структуру разработки фронт-конечностей. Чтобы решить проблему совместимости, вы должны сначала точно определить тип и версию браузера.
JavaScript является основным языком фронтальной разработки. Мы можем судить тип и версию браузера, написав программы JavaScript. Как правило, есть два способа судить типы браузеров в JavaScript. Одним из них является различие их на основе уникальных атрибутов различных браузеров, а другой - судить, анализируя атрибут пользователя браузера. Во многих случаях, после того, как значение определяет тип браузера, необходимо судить версию браузера для решения проблемы совместимости. Версия браузера, как правило, может быть известна путем анализа пользователя браузера.
Давайте сначала проанализируем характеристики различных браузеров и их пользователей.
Т.е.
Только IE поддерживает создание элементов управления ActiveX, поэтому у нее есть то, чего нет у других браузеров, что является функцией ActivexObject. Пока вы судите, что у окна объект имеет функцию ActivexObject, вы можете четко определить, что текущий браузер IE IE. Типичные пользователи для каждой версии IE следующие:
Mozilla/4.0 (совместимо; MSIE 8.0; Windows NT 6.0)
Mozilla/4.0 (совместимо; MSIE 7.0; Windows NT 5.2)
Mozilla/4.0 (совместимо; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (совместимый; msie 5.0; Windows NT)
Среди них номер версии - это номер после MSIE.
Firefox
Элементы DOM в Firefox имеют функцию GetBoxObjectFor, которая используется для получения позиции и размера элемента DOM (функция GetBoundingClientRect, соответствующая IE). Это уникально для Firefox. Вы можете сказать, что нынешний браузер - Firefox. Пользовательские агенты нескольких версий Firefox примерно следующие:
Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12
Среди них номер версии - это число после Firefox.
Опера
Opera предоставляет специальный логотип браузера, который является свойством Window.opera. Типичный пользователь для оперы заключается в следующем:
Opera/9.27 (Windows NT 5.2; U; ZH-CN)
Opera/8.0 (Macintosh; PPC Mac OS x; U; en)
Mozilla/5.0 (Macintosh; PPC Mac OS x; U; en) Opera 8.0
Среди них номер версии - это число, близкое к опере.
Сафари
В браузере Safari есть функция OpenDatabase, которой нет других браузеров, которых нет, чего можно использовать в качестве флага для суждения Safari. Типичные пользователи для Safari заключаются в следующем:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebkit/525.13 (khtml, как гекко), версия/3.1 Safari/525.13
Mozilla/5.0 (iPhone; U; CPU, как Mac OS X) AppleWebkit/420.1 (khtml, как гекко), версия/3.0 Mobile/4A93 Safari/419.3
Его номер версии - это число после версии.
Хром
Chrome имеет функцию MessageEvent, но Firefox также имеет ее. К счастью, Chrome не имеет функции Firefox getBoxObjectfor, и он может быть точно оценен на основе этого состояния. В настоящее время chrome User -Agant:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebkit/525.13 (khtml, как гекко) Chrome/0.2.149.27 Safari/525.13
Среди них номер версии только после Chrome.
Интересно, что пользовательский агент Chrome также содержит характеристики Safari, возможно, это основа для Chrome для запуска всех приложений Browser Apple.
Пока мы понимаем вышеуказанную информацию, мы можем основывать эти характеристики на типе браузера и ее версии. Мы сохраним результаты суждения в пространстве имени SYS и станем основной информацией логотипа передней структуры для будущих программ для чтения. Если вы определите браузер, пространство имен SYS будет иметь атрибут имени браузера, а его значение - номер версии браузера. Например, если IE 7.0 определяется, значение Sys.ie составляет 7,0; Если Firefox 3.0 определяется, значение sys.firefox составляет 3,0. Вот код для определения браузера:
[Ctrl+A Select All Note: Если вам нужно представить внешний JS, вам нужно обновить, чтобы выполнить]
Сначала мы поставили наше суждение о IE, потому что IE имеет больше всего пользователей, за которым следует Firefox. Судя по типу браузера по порядку пользователей, может повысить эффективность суждения и выполнять менее бесполезную работу. Причина, по которой Chrome находится на третьем месте, заключается в том, что мы прогнозируем, что Chrome скоро станет третьим браузером с долей рынка. Среди них при анализе версии браузера регулярные выражения используются для анализы информации о версии.
Если ваш JavaScript очень хороший, вы также можете написать предыдущий код суждения таким образом:
[Ctrl+A Select All Note: Если вам нужно представить внешний JS, вам нужно обновить, чтобы выполнить]
Это может сделать код JavaScript более оптимизированным. Конечно, читаемость немного хуже, это зависит от того, ценят ли вы эффективность или обслуживание.
Метод оценки браузеров с использованием различных функций быстрее, чем анализ пользователей с регулярными выражениями, но эти функции могут варьироваться в зависимости от версии браузера. Например, если первоначально уникальная функция браузера достигла успеха на рынке, другие браузеры также могут добавить эту функцию, что приведет к исчезновению уникальной функции браузера и приведет к неудаче нашего суждения. Следовательно, относительно безопасным подходом является оценка типа браузера, анализируя функции в пользователе. Более того, оценка информации о версии требует анализа пользователя браузера.
Анализируя пользовательскую информацию различных браузеров, нетрудно получить регулярные выражения, которые различают различные браузеры и их версии. Более того, суждение типа и версии браузера может быть сделано в одном. Итак, мы можем написать следующий код:
[Ctrl+A Select All Note: Если вам нужно представить внешний JS, вам нужно обновить, чтобы выполнить]
Среди них выражение суждения, как «...? ...: ...» используется для упрощения кода. Условие суждения - это заявление о присвоении, которое не только завершает сопоставление регулярных выражений и копирование результата, но также напрямую использует условное суждение. Последующая информация о версии должна быть извлечена только из предыдущих результатов сопоставления, что является очень эффективным кодом.
Все вышеупомянутые коды представляют собой предварительные исследования для создания фронтальной структуры и протестированы и переданы в пять основных браузеров. В будущем вам нужно судить только определенного браузера в форме if (sys.ie) или if (sys.firefox), и вам нужно судить только версию браузера в форме if (sys.ie == '8.0') или if (sys.firefox == '3.0'), что все еще очень элегантно.
Был запущен фронтальный фреймворк-проект, все зависит от процесса и результатов ...
Редактор Wulin.com разобрал несколько кодов для вас:
Кода -копия выглядит следующим образом:
var browser = new Object ();
Browser.ismozilla = (typeof Document.Implementation! = 'Undefined') && (typeof Document.Implementation.createdocument! = 'Undefined') && (typeof htmldocument! = 'Undefined');
Browser.isie = window.activexobject? Верно: Неверно;
Browser.isfirefox = (navigator.useragent.tolowercase (). Indexof ("firefox")! =-1);
Browser.issafari = (navigator.useragent.tolowercase (). Indexof ("safari")! =-1);
Browser.isopera = (navigator.useragent.tolowercase (). Indexof ("Opera")! =-1);
функция проверка () {
Alert (Browser.isie? 'IE': 'не IE');
Alert (Browser.isfirefox? 'Firefox': «Не Firefox»);
Alert (Browser.issafari? 'Safari': «Не сафари»);
Alert (Browser.isopera? 'Opera': «Не опера»);
}
window.onload = check;
Кода -копия выглядит следующим образом:
function isbrowser () {
var sys = {};
var ua = navigator.useragent.tolowercase ();
var s;
(s = ua.match (/msie ([/д .тки+)/))?sys.ie=sts1]:
(s = ua.match (/firefox // ([/d.]+)/))? sys.firefox = s [1]:
(s = ua.match (/chrome // ([/d.]+)/))? sys.chrome = s [1]:
(s = ua.match (/opera. ([/d.]+)/))? sys.opera = s [1]:
(s = ua.match (/version // ([/d.]+).*safari/))? sys.safari = s [1]: 0;
if (sys.ie) {// JS оценивается как браузер IE
Alert ('// www.vevb.com'+sys.ie);
if (sys.ie == '9.0') {// JS оценивается как IE 9
} else if (sys.ie == '8.0') {// JS оценивается как IE 8
}еще{
}
}
if (sys.firefox) {// JS считается браузером Firefox (Firefox)
alert ('// www.vevb.com'+sys.firefox);
}
if (sys.chrome) {// js считается Google Chrome Browser
Alert ('// www.vevb.com'+sys.chrome);
}
if (sys.opera) {// JS считается браузером оперы
Alert ('// www.vevb.com'+sys.opera);
}
if (sys.safari) {// JS считается браузером Apple Safari
Alert ('// www.vevb.com'+sys.safari);
}
}
Поделитесь методом функции, чтобы получить тип браузера и номер версии браузера через jQuery. Конкретный код jQuery заключается в следующем:
Кода -копия выглядит следующим образом:
$ (document) .ready (function () {
varbrow = $. Браузер;
varbinfo = "";
if (brow.msie) {binfo = "Microsoft Internetexplorer"+brow.version;}
if (brow.mozilla) {binfo = "mozillafirefox"+brow.version;}
if (brow.safari) {binfo = "applesafari"+brow.version;}
if (brow.opera) {binfo = "opera"+brow.version;}
бдительность (binfo);
});
Начиная с версии 1.9, jQuery удалил $ .browser и $ .browser.version и заменил его методом $. Если вам нужно понять $.
JQUERY 1.9 Используйте $.