Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определение броузера (https://javascript.ru/forum/misc/13836-opredelenie-brouzera.html)

wolfinil 15.12.2010 19:05

Определение броузера
 
Вот хотел сделать функцию определения IE или FireFox при нажатии на кнопку. В ИЕ работает, а в Файрфоксе нет. Т.е. броузер определяется, но измение value и стиля кнопки не происходит. Не знаю что не так. Помогите пожалуйста.
<script>
      function navBrowser() {
            var browser = navigator.appName;
//            document.write(browser);
            if (browser == 'Microsoft Internet Explorer') {
                Button1.value = 'Используется Microsoft Internet Explorer';
                Button1.style.color = 'Red';
            }
            else {
                Button1.value = 'Используется FireFox';
                Button1.style.color = 'Blue';
            }
        }
 </script>


Да наверное это вопрос о другом получился. Извините )

dmitriymar 15.12.2010 19:14

называя вещи своими именами и в ие не работает. просто ие игнорирует грубую ошибку или document.getElementById уже гдето присутствует ранее?

wolfinil 15.12.2010 19:15

а где она, ошибка-то?

bushstas 15.12.2010 19:21

Вложений: 1
скачай данный скрипт и прицепи к странице
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script>

function navBrowser() {

Button1=document.getElementById('button1') // корректнее приписать это

if (typeof($.browser.mozilla)!= 'undefined') {
Button1.value = 'Mozilla';
Button1.style.color = '#0042ff';
}

if (typeof($.browser.opera)!= 'undefined') {
Button1.value = 'Opera';
Button1.style.color = '#6db22f';
}

if (typeof($.browser.msie)!= 'undefined') {
Button1.value = 'Microshit Interhead Exploder';
Button1.style.color = '#ff0000';
}

// и цвета словами тоже не все браузеры понимают если я не ошибаюсь лучше кодом указывать #000000

}

wolfinil 15.12.2010 19:24

угу, понял что не получил элемент для операций с ним. спасибо за помощь.

bushstas 15.12.2010 19:28

просто еще в твоем коде if IE else Mozilla а если еще другой браузер
у меня navigator.appName в мозилле выдает NetScape

dmitriymar 15.12.2010 19:30

bushstas,
да ну зачем джиквери для простых вещей?кста в твоём анимированном импуте есть баг-кликни по нему пустому несколько раз мышей

wolfinil 15.12.2010 19:33

Цитата:

Сообщение от bushstas (Сообщение 84046)
у меня navigator.appName в мозилле выдает NetScape

Netscape разработчик у которого раньше был одноименный броузер, а теперь их проект FireFox. Думаю такое объяснение

monolithed 15.12.2010 20:51

Цитата:

Сообщение от bushstas
скачай данный скрипт и прицепи к странице

Цитата:

Сообщение от dmitriymar
да ну зачем джиквери для простых вещей?

Советовать новичкам использовать jQuery преступление века!
Цитата:

Сообщение от wolfinil
Netscape разработчик у которого раньше был одноименный броузер, а теперь их проект FireFox. Думаю такое объяснение

Небольшой экскурс в историю:
Netscape Communications когда-то выпустили богом забытый (и мной тоже) Netscape Navigator/Communicator, затем после того как NN стал сдавать позиции IE, было принято решение о частичном рефакториге кода и выпуск свободной лицензии, для этого создали т.н. Mozilla Organization (Mozilla - кодовое имя одной из сборок NN), затем дела у Netscape шли все хуже и хуже и они решили полностью переписать код NN и в 2003 г. создать проект Mozilla Foundation, который сейчас выпускает браузер/

Свойство userAgent содержит с значения свойств appName, appVersion и еще кучу всего. Т.к. формат свойства userAgent не стандартизован в IE и Safari исторически сложилось, что название (то с чего начинается) браузера соответствует Mozilla! Это происходит потому
разработчикам браузеров когда-то не охота было рыть код определяющий значения этих свойств, решили так сказать продолжить традицию

выполните в IE, Safari:
alert(navigator.userAgent);


кстати, есть пара очень коротких способов определить IE:

var isMSIE !+"\v1"
var isMSIE = /*@cc_on!@*/!1;

bushstas 15.12.2010 20:52

про баг знаю там их тонны ))))
работать и работать )))


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