admin / 19.12.2017
.
Содержание
Существует достаточно большое количество браузеров, а также их версий.
И проблема в том, что одни браузеры позволяют выполнить определённый скрипт, а другие не позволяют. Встаёт вопрос: а как узнать браузер пользователя в JavaScript, чтобы через условие решить: надо выполнять скрипт или нет. И о том, как определить имя и версию браузера пользователя я и напишу в этой статье.
Для таких целей существует объект Navigator, а точнее два его свойства: appName и appVersion. Давайте для начала выведем название браузера пользователю:
В результате Вы увидите имя браузера пользователя. Также огромное значение оказывает не только сам браузер, но и его версия. И для таких случаев используется свойство appVersion:
Свойства appName и appVersion доступны только для чтения (это и логично), поэтому изменить их у Вас не получится. Теперь встаёт вопрос, а как использовать их в операторе IF:
Надеюсь, что я ответил на Ваш вопрос: «Как узнать имя и версию браузера в JavaScript«.
Удачи!
Создано 21.10.2010 11:29:50
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Она выглядит вот так: Как создать свой сайт
Определить браузер в JavaScript, можно вытащив данные из переменной .
Напишем функцию
function browser() { var ua = navigator.userAgent; if (ua.search(/MSIE/) > 0) return ‘Internet Explorer’; if (ua.search(/Firefox/) > 0) return ‘Firefox’; if (ua.search(/Opera/) > 0) return ‘Opera’; if (ua.search(/Chrome/) > 0) return ‘Google Chrome’; if (ua.search(/Safari/) > 0) return ‘Safari’; if (ua.search(/Konqueror/) > 0) return ‘Konqueror’; if (ua.search(/Iceweasel/) > 0) return ‘Debian Iceweasel’; if (ua.search(/SeaMonkey/) > 0) return ‘SeaMonkey’; // Браузеров очень много, все вписывать смысле нет, Gecko почти везде встречается if (ua.search(/Gecko/) > 0) return ‘Gecko’; // а может это вообще поисковый робот return ‘Search Bot’; }
Список юзер-агентов достаточно большой. Некоторые браузеры сделаны на основе других браузеров и может данные в них могут быть очень похожими.
Например Google Chrome сделан на основе браузера Safari, и записи очень похожи:
Google Chrome —
Safari —
Поэтому очередность проверки данных по тексту достаточно велика.
См. также определение браузера в PHP
Внимай, даю установку: скрипты — это круто. Ты это знаешь, я это знаю, короче — мы это знаем. Установку дал! Успешно. Теперь о них — любимых скриптах — и поговорим. Приятно наваять своими ручками ка- кую-нибудь скриптятину на яве и дать соседу-ламаку пропереться, а по- ка тот будет ее разглядывать — дать ему пинка. Вот только бага: по ходу все клевое в скриптинге уже придумано. Предложить что-либо карди- нально новое (во всяком случае, мне) уже сложно, лучше пива попить пойти. С другой стороны, можно легко насочинять целый ворох вторич- ных вещей, которые при ближайшем рассмотрении сведутся к Нагромож- дению все тех же базовых методов. А это неправильно — вторичное само по себе на хрен никому не нужно. Наконец (не на конец, а в конце концов!)…
Внимай, даю установку: скрипты — это круто. Ты это знаешь, я это знаю, короче — мы это знаем. Установку дал! Успешно. Теперь о них — любимых скриптах — и поговорим. Приятно наваять своими ручками ка- кую-нибудь скриптятину на яве и дать соседу-ламаку пропереться, а по- ка тот будет ее разглядывать — дать ему пинка. Вот только бага: по ходу все клевое в скриптинге уже придумано. Предложить что-либо карди- нально новое (во всяком случае, мне) уже сложно, лучше пива попить пойти.
С другой стороны, можно легко насочинять целый ворох вторич- ных вещей, которые при ближайшем рассмотрении сведутся к Нагромож- дению все тех же базовых методов. А это неправильно — вторичное само по себе на хрен никому не нужно. Наконец (не на конец, а в конце концов!), наступило «творческое озарение»: если нельзя ничего выжать внутри документа, то надо перехо- дить на качественно новый уровень манипуляции самим окном броузера. Сначала чуть-чуть информации для тех, кто забыл (или не знал). В объектной модели современных броузеров (под современными я имею в виду Internet Explorer и Netscape Navigator) есть два очень интерес- ных метода: window.resizeTo (x,y) и window.moveTo (x,y), которые сулят просто огромные возможности. Первый метод изменяет размер «смотро- вого окна» броузера до указанных размеров (то есть х на у пикселей), а второй перемещает само окно, помещая левый верхний угол в точку с ко- ординатами х по горизонтали и у по вертикали. Таким образом, грамотно используя эти два метода, ты легко можешь добиться весьма интересных эффектов, которые буквально валят с ног неподготовленного зрителя.
Для начала давай рассмотрим простенький скриптик, отвечающий за перемещение окна броузера по десктопу и его отражение от «краев» экрана:
Скрипт 1:
Окно в стиле Xenix
<script language = javascript> // Начинаем script блок function move_the_window(){ // Наша стартовая функция window.resizeTo(screen. width/2, screen, height/2);- // Сначала сжимаем окно до половины рабочего стола window.moveTo(1,1); // Теперь помещаем его в левый верхний угол экрана var x=1; // Это будет наша Х-координата. Вначале равна единице var y=1; // Это будет наша Y-координата. Вначале равна единице var dx=7; // Смещение по X var dy=10; // … и по Y move(); // Теперь вызываем функцию, которая и будет двигать окно function move(){ // .Объявляем функцию while(true){ // Объявляем бесконечный цикл if(x>=(screen.width) || x<=0) dx=-dx; // В случае, если окно на краю экрана по X, меняем направление if(y>=(screen.height) || y<=0) dy=-dy; // To же самое, но уже для Y x+=dx; // Сдвинули по горизонтали y+=dy; // … и по вертикали window.moveTo (x,y); // Нарисовали окно на новом месте } // Конец нашего бесконечного цикла } // Конец функции move } // Конец функции move_the_window // Ну, и закрываем script блок </script> <html> <head> <title>8cript NK/title> </head> <body onload = \»move_the_window()\»> <centerxfont face = Tiroes size = 6 color =redxi>javascript is cool! </i></fontx/center> </body> </html> Как только страница полностью загружена, вызывается функция move_the_window. Она объявляет все необходимые переменные и помеща- ет окно в левый верхний угол рабочего стола. Методы screen.width и screen.height возвращают нам значения (ширину и высоту) рабочего сто- ла, и, уже зная их, мы сжимаем окно до половины.
Теперь приступим к функции move. Так как все действия здесь вы- полняются внутри бесконечного цикла, то окно так и будет безостановоч- но бегать по экрану.
Попытка же свернуть его через task manager Приведет к интересным визуальным эффектам (советую убедиться на собственном опыте). В случае, если ты хочешь, чтобы цикл выполнялся определенное количество раз, замени оператор while на while(var i < твое число) и добавь в конце цикла оператор i++. С помощью метода resizeTo можно делать довольно любопытные вещи. Посмотри, как можно сжать окно до размеров заглавной рамки и заставить все это, как обычно, бегать по экрану:
Скрипт 2:
Развитие темы
<script language = javascript> // Начинаем script блок function move_the_windows(){ // Наша стартовая функция window. resizeTo(screen.width, 25); // Сжимаем окно номер 1 window.moveTo(0,1); // Теперь помещаем его в левый верхний угол экрана window2 = ореп(\»\», null); // Создаем объект второго окна window2.document.write(\»<title> Window N2</title>\»); // Пишем в не- го заголовок window2.resizeTo(screen.width,25); // Сжимаем его и window2.moveTo(0, screen.height-25); // помещаем в низ экрана var dy1=2; // Начальное смещение для верхнего окна var dy2=-2; // … и для нижнего var y1 = 1; // Y-координата верхнего окна var y2 = screen.height-25; // и Y-координата нижнего move(); // Теперь вызываем функцию, которая и будет двигать оба окна function move(){ // Объявляем функцию while(true){ // Объявляем бесконечный цикл if (y1>=(screen.height) || y1 <=0) dy1=-dy1; // Меняем направление if (y2>=(screen.height) || y2 <=0) dy2=-dy2; // To же для второго окна y1+=dy1; // Сдвинули первое окно по вертикали y2+=dy2; // … и второе window.moveTo (0,y1); // Нарисовали первое окно на новом месте window2.moveTo (0,y2); // Нарисовали второе окно на новом месте } // Конец нашего бесконечного цикла } // Конец функции move } // Конец функции move_the_windows // Ну, и закрываем script блок </script> <html> <head> <title>Script N2 Window 1</title></head> <bodyonload = \»move_the_windows()\»> <centerxfontface = Timessize = 6 color =redxi>javascriptiscool! </ix/fontx/center> </body> </html> По сути, этот скрипт является расширением первого: новым явля- ется наличие двух окон, которые движутся независимо. Обрати внимание на механизм создания второго окна и способ записи HTML-тэгов через document.write, Теперь, познакомившись с этими методами, ты, наверно уже зада- ешь себе вопрос: а нельзя ли через этот самый javascript подвесить кли- ентский компьютер? Что ж, это вполне возможно. Метод прост до не- приличия: все, что только нужно делать, — открывать новые окна с максимальной быстротой. В этом случае у системы просто не хватает ре- сурсов, и все «повисает». Другое дело, что, на мой взгляд, этот примити- визм не является чем-то по-настоящему интересным, и, вероятно, раз оз- накомившись с этим дубовым методом, ты больше не будешь тратить свое время на эту муру:
Скрипт 3:
Генерация множества окон:
<script language = javascript> // Начинаем script блок function generate_windows(){ // Наша стартовая функция var 1=1; while (i < 10000){ // Главный цикл window.open(\»script3.htm\»)l // Новое окно с ссылкой на тот же HTML файл i++; // Увеличиваем счетчик цикла } // Конец цикла } // Конец generate_windows // Закрываем script блок </script> <html> <head> <title>Multiple windows</title> </head> <body onload = \»generate_windows()\»> </body> </htnl> Фактически в теле главного цикла скрипт пробует открыть 10000 окон, причем каждое окно ссылается на тот же файл, то есть в свою оче- редь пытается открыть еще ГОООО окон и т.д. Система просто не справля- ется с таким потоком и, увы, повисает
FILED UNDER : IT