Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Navigator. как лучше пользоваться? (https://javascript.ru/forum/misc/31684-navigator-kak-luchshe-polzovatsya.html)

dmitry111 17.09.2012 08:15

Navigator. как лучше пользоваться?
 
Посоветуйте как лучше отфильтровать браузеры?


На какое свойство navigator ориентироваться при определении браузера?


Из наблюдений могу сказать:

navagator.appName == "Opera" // true  для opera
navagator.appName == "Microsoft Internet Explorer" // true для ms
navigatot.vendor == "Apple Computer, Inc." // true для safari
navigator.vendor == "Google Inc." // true для chrome
navigator.oscpu // такое свойство есть только у firefox



Тестил в свежих браузерах.

Как вы ориентируетесь в браузерах?
Посоветуйте способы определения (желательно без regEx) браузера не зависимо от версии.

Может есть какой-то готовый небольшой(!) плагинчик?

dmitry111 17.09.2012 08:43

Вот плагин который поможет узнать название браузера:

<!DOCTYPE HTML>
<html>
<head>
    <script>
        function go() {

            if (navigator.appName == "Opera") {
                alert("opera");
            }
            if (navigator.appName == "Microsoft Internet Explorer") {
                alert("ms");
            }
            if (navigator.vendor == "Apple Computer, Inc.") {
                alert("safari");
            }
            if (navigator.vendor == "Google Inc.") {
                alert("chrome");
            }
            if (navigator.oscpu) {
                alert("firefox");
            }

        }
    </script>


</head>
<body>

<button onclick="go();">узнать браузер</button>
</body>
</html>

Плагин успешно работает в:
-ie 7,8,9
-safari 6.0
-opera 12.02
-firefox 15.0.1
-chrome 21.0.1180.89

dmitry111 17.09.2012 08:45

еси у кого есть возможность посмотреть как он работает в старых версиях браузеров, буду рад если отпишитесь.

.. ну или предложите свой метод определения браузера )

Riim 17.09.2012 09:11

Быстренько набросал давно уже:

var Browser = {};

if (/(Trident|Gecko|WebKit|KHTML|Presto)\W*([.,\w]+)*/i.test(navigator.userAgent)) {
	Browser.layoutEngineName = RegExp.$1.toLowerCase();
	Browser.layoutEngineVersion = RegExp.$2;
}

if (window.opera) {
	Browser.name = 'opera';
	Browser.version = opera.version();
} else if (/(MSIE|Firefox|Chrome|Safari|Konqueror)\W*([.,\w]+)*/i.test(navigator.userAgent)) {
	Browser.name = RegExp.$1.toLowerCase();
	Browser.version = RegExp.$2;
}

dmitry111 17.09.2012 09:19

Riim,
мощно, зачот! :thanks:

bes 17.09.2012 09:45

navigator.userAgent.indexOf('ключевое слово')
PS: в принципе не стоит разграничивать код по браузерам

dmitry111 17.09.2012 11:54

bes,

сенкс, что-то даже не подумал, что можно выцепить с помощью indexOf. В дебри полез :)
Цитата:

Сообщение от bes (Сообщение 205086)
PS: в принципе не стоит разграничивать код по браузерам

Да не, мне пустячок с курсорами решить надо было.

dmitry111 17.09.2012 11:59

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 205087)
а вообще да ОП, гугл для слабых.

Мне кажется вы переоцениваете гугл :)

bes 17.09.2012 12:03

Цитата:

Сообщение от dmitry111
сенкс, что-то даже не подумал, что можно выцепить с помощью indexOf. В дебри полез

главное правильно выбирать ключевые слова, а то некоторые повторяются: Chrome, Firefox, MSIE, Opera, вроде так

dmitry111 17.09.2012 12:17

да, сафари и хром повторяются. Ну они и работают более или менее идентично.


Часовой пояс GMT +3, время: 01:38.