Проблема с определением userAgent
Здравствуйте, есть скрипт который определяет браузер и исходя из этого выдает алерт.
<html> <head> </head> <body> <script> if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && navigator.userAgent.toLowerCase().indexOf('opera') == -1 && navigator.userAgent.toLowerCase().indexOf('webtv') == -1) { alert('IE'); } if (navigator.userAgent.toLowerCase().indexOf('gecko') != -1) { alert('FF'); } </script> </body> </html> Проблема в том что и в FireFox и в Chrome есть gecko. В итоге при запуске в Chrome вылетает алерт alert('FF'); Кто сталкивался, как бороться ? |
|
Цитата:
<html> <head> </head> <body> <script> window.onload = function() { hasIE = /*@cc_on true; @*/false; if (hasIE > 0) {alert('IE'); return false} hasOpera = !!window.opera; if (hasOpera > 0) {alert('Opera'); return false} hasChrome = !!window.chrome; if (hasChrome > 0) {alert('Chrome'); return false} hasFireFox = !!window.sidebar; if (hasFireFox > 0) {alert('FireFox'); return false} hasSafari = !window.external && !hasOpera; if (hasSafari > 0) {alert('Safari'); return false} } </script> </body> </html> Может я не правильно проверку сделал ? |
Цитата:
|
Цитата:
|
Цитата:
Может какая то хитрость есть или ещё что то, сорри если глупый вопрос задаю, я не пока не очень силен в JS. Цитата:
|
Столкнулся с непоняткой в IE, вот код:
<html> <head> </head> <body> <script> hasIE = /*@cc_on true; @*/false; if (hasIE > 0) {alert('IE');} hasFireFox = !!window.sidebar; if (hasFireFox > 0) {alert('FF');} else {alert('other');} </script> </body> </html> Нужно чтоб на всех остальных браузеров кроме IE/FF скрипт выдавал alert('other'); Он же в IE работает не понятно, сперва выдает alert('IE'); а затем alert('other'); В чем может быть проблема ? Это что особенность IE ? |
Цитата:
1. if (hasIE > 0) {alert('IE');} который выполняется и IE и исполнение скрипта проходит дальше, где второй блок: 2. if (hasFireFox > 0) {alert('FF');} else {alert('other');} и он тоже исполняется :) используйте else if |
T-sh, не совсем понял что вы имеете введу, как использовать "else if" ? Можно пример ?
Но то что вы писали про условные блоки натолкнуло на мысль сделать так: <html> <head> </head> <body> <script> window.onload = function() { hasIE = /*@cc_on true; @*/false; if (hasIE > 0) {alert('IE'); return false} hasFireFox = !!window.sidebar; if (hasFireFox > 0) {alert('FF'); return false} else {alert('other');} } </script> </body> </html> Это правильно написано с точки зрения синтаксиса ? Или лучше не переписать так как вы говорили используя "else if" ? |
<script> hasIE = /*@cc_on true; @*/false; hasFireFox = !!window.sidebar; if (hasIE > 0) { alert('IE'); } else { if (hasFireFox > 0) { alert('FF'); } else { alert('other'); } } </script> |
Часовой пояс GMT +3, время: 07:13. |