Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить браузер у клиента? 
:(
    Опции темы
Sardar
Дата 3.7.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Aliance @ 2.7.2005, 13:03)
NN 5 и 6 списываем со считов?

Я бы списал smile

Цитата(Aliance @ 2.7.2005, 13:23)
Вот тут и проблема, ИЕ 5 не поддерживает множество вещей, реально нужных...

Не совсем, ИЕ 5.5 ещё нормальный, но ИЕ 5.0 это убогая вещь...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 5.7.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Может тебе самому покапаться. Отрисуй в каждом браузере каждой версии распечатку объектов window и document, просмотри свойства и интересные вложенные в них объекты, посмотри также в каком браузере какие свойства не имплементированы, но заложены (исп исключения) и тд. Это труд не имеющий конечной точки


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Aliance
Дата 5.7.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата
исп исключения

JavaScript 1.5 - этим все сказано...

Это было бы просто - но у меня ограниченное кол-во браузеров. И я хочу проверку делать и по user-agent'y
PM MAIL WWW ICQ Skype   Вверх
Иль
Дата 5.7.2005, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Цитата(Aliance @ 5.7.2005, 15:24)
JavaScript 1.5

Кстати, тоже показатель - версия JS.

Aliance, мне кажется под это дело не стыдно (постоянно дополняемый и обновляемый) интернет-проект создать, но всетаки это работа, работа, работа.


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Sardar
Дата 6.7.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата
постоянно дополняемый и обновляемый интернет-проект создать

Браузеры столь интенсивно не развиваються, имею в виду не совместимости smile Все последние браузеры стараються быть совместимыми друг с другом, определение софта у клиента практически не нужно. Ну разве что для статистики.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 8.7.2005, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



А вот не согласная я smile


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Aliance
Дата 8.7.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Модератор: Давайте вернёмся к теме обсуждения.
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 16.8.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



А вот он мой сниффер:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Сниффер © AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">
<!--

/*********************************************
  ИНИЦИАЛИЗИРУЕМ ОБЪЕКТ ДЛЯ РАБОТЫ С ТЕКСТОМ  
*********************************************/

var text = new Object();
text.browser = "Ваш браузер";
text.version = "Версия";
text.os = "Ваша операционная система";
text.error = "Выполнение кода в таком режиме недоступно.";
text.alert_browser = "Не удается определить"+text.browser.toLowerCase()+".\n"+text.error;
text.alert_os = "Не удается определить Вашу операционную систему.\n"+text.error;

/*********************************************
  ИНИЦИАЛИЗИРУЕМ ОБЪЕКТ ДЛЯ РАБОТЫ С ДАННЫМИ  
*********************************************/

var browser = new Object();
browser.browser = null;
browser.isIE = false;
browser.isNN = false;
// browser.isMozilla = false;
browser.isOpera = false;

browser.version = parseInt(navigator.appVersion);

browser.OS = null;
browser.isWin = false;
browser.isMac = false;
browser.isUnix = false;
// browser.isSafari = false;

// ОПРЕДЕЛЯЕМ БРАУЗЕР

var app = navigator.appName;
if (window.opera) {
   browser.isOpera = true;
} else if (app.indexOf("Netscape") != -1) {
   browser.isNN = true;
} else if (app.indexOf("Microsoft") != -1) {
   browser.isIE = true;
} else {
   return false;
}

switch(true) {
   case browser.isOpera:
      browser.browser = "Opera";
      break;
   case browser.isNN:
      browser.browser = "Netscape Navigator";
      break;
   case browser.isIE:
      browser.browser = "Microsoft Internet Explorer";
      break;
   default:
      alert(text.alert_browser);
      break;
}

// ОПРЕДЕЛЯЕМ ОС

var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf("windows") != -1) {
   browser.isWin = true;
} else if (agent.indexOf("mac") != -1) {
   browser.isMac = true;
} else if (agent.indexOf("x11") != -1) {
   browser.isUnix = true;
} else {
   return false;
}

switch(true) {
   case browser.isWin:
      browser.OS = "Windows";
      break;
   case browser.isMac:
      browser.OS = "Macintosh";
      break;
   case browser.isUnix:
      browser.OS = "*unix";
      break;
   default:
      alert(text.alert_os);
      break;
}

var msg = text.browser+": "+browser.browser;
    msg += "\n";
    msg += text.version+": "+browser.version;
    msg += "\n";
    msg += text.os+": "+browser.OS;

// Выводим сообщение
alert(msg);

// В коде может быть использовано, скажем, так:
// if (browser.isIE) {
//  alert('Я ясновидящий - вы пользуетесь ИЕ ;-)');
// }

// -->
</SCRIPT>
</HEAD>

<BODY>

<h1>© Aliance</h1>

</BODY>
</HTML>

PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 16.8.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Проверка по navigator.appName - не всегда точна, Опера например может прикидываьться кем угодно. К тому же ты не учёл Safari - мощный маковый браузер, и Konkuerror браузер на движке KHTML.

На сам браузер пофигу, нужно определять движёк, тогда их:
  • IE (5.0-, 5.5+)
  • Gecko(Mozilla, FF etc)
  • Opera (Opera)
  • KHTML (Konkerrror etc)
  • (по моему) KHTML+ (Safari)

Различии движка определяют поведение. Также важно знать есть ли XML поддержка, XMLHttpRequest, DOM2, DOM2 Event, CSS2, CSS3 и т.д. Это требуемая инфа, appName - это по сути ничего...

Я не о точности, я о смысле. Зачем такая проверка?
мне нужен XMLHttpRequest, XSLT трансформации на клиенте, CSS3(opacity) стили. Не возможно узнать эту инфу из твоего кода. Круче если бы ты сделал обьект browser, например:

Код

if(!browser.isSupported('DOM 2 Event'))
  document.write('<script type="text/javascript" src="./IE_dom2_event_patch.js"></script>');



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 16.8.2005, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Теперь прочти почти каждый мой пост, увидишь там название «снифер». Теперь определения снифера:
проверка браузера через свойства navigator`а. Поэтому больше не нужно говорить мне то, что я сам всегда говорю в иных ситуациях. Я пишу именно такую проверку со всеми вытекающими последствиями.

Мне бы узнать, как Сафари отличить, ибо нет его у меня.
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 16.8.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Xм... я говорил о смысле, ты о своём "сниффере", а народ о поставленной задаче... smile
Если народу функций твоего "сниффера" достаточно, то вопросов нет smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
o.s.a.
Дата 16.8.2005, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 5
Всего: 15



В твоем снифере FF выдает ошибку:
Цитата
 
Ошибка: invalid return
Строка 41, символ 3
Исходный код: return false;



--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Aliance
Дата 16.8.2005, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Sardar
Я пишу его для своих целей, я не могу каждому угодить. Кому-то понравился - бери.
Но изначально для себя, мне он пригодится, думаю :-)
Добавлено @ 14:35
Сорри, дал не верный код. Вот исправленная версия:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Сниффер © AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">
<!--//--><![CDATA[//><!--

/*********************************************
  ИНИЦИАЛИЗИРУЕМ ОБЪЕКТ ДЛЯ РАБОТЫ С ТЕКСТОМ  
*********************************************/

var text = new Object();
text.browser = "Ваш браузер";
text.version = "Версия";
text.os = "Ваша операционная система";
text.error = "Выполнение кода в таком режиме недоступно.";
text.alert_browser = "Не удается определить"+text.browser.toLowerCase()+".\n"+text.error;
text.alert_os = "Не удается определить Вашу операционную систему.\n"+text.error;

/*********************************************
  ИНИЦИАЛИЗИРУЕМ ОБЪЕКТ ДЛЯ РАБОТЫ С ДАННЫМИ  
*********************************************/

var browser = new Object();
browser.browser = null;
browser.isIE = false;
browser.isNN = false;
// browser.isMozilla = false;
browser.isOpera = false;

browser.version = parseInt(navigator.appVersion);

browser.OS = null;
browser.isWin = false;
browser.isMac = false;
browser.isUnix = false;
// browser.isSafari = false;

// ОПРЕДЕЛЯЕМ БРАУЗЕР

var app = navigator.appName;
if (window.opera) {
   browser.isOpera = true;
} else if (app.indexOf("Netscape") != -1) {
   browser.isNN = true;
} else if (app.indexOf("Microsoft") != -1) {
   browser.isIE = true;
}

switch (true) {
   case browser.isOpera:
      browser.browser = "Opera";
      break;
   case browser.isNN:
      browser.browser = "Netscape Navigator";
      break;
   case browser.isIE:
      browser.browser = "Microsoft Internet Explorer";
      break;
   default:
      alert(text.alert_browser);
      break;
}

// ОПРЕДЕЛЯЕМ ОС

var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf("windows") != -1) {
   browser.isWin = true;
} else if (agent.indexOf("mac") != -1) {
   browser.isMac = true;
} else if (agent.indexOf("x11") != -1) {
   browser.isUnix = true;
}

switch (true) {
   case browser.isWin:
      browser.OS = "Windows";
      break;
   case browser.isMac:
      browser.OS = "Macintosh";
      break;
   case browser.isUnix:
      browser.OS = "*unix";
      break;
   default:
      alert(text.alert_os);
      break;
}

var msg = text.browser+": "+browser.browser;
    msg += "\n";
    msg += text.version+": "+browser.version;
    msg += "\n";
    msg += text.os+": "+browser.OS;

alert(msg);

//--><!]]>
</SCRIPT>
</HEAD>

<BODY>



</BODY>
</HTML>

PM MAIL WWW ICQ Skype   Вверх
o.s.a.
Дата 16.8.2005, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 5
Всего: 15



Результаты тестироавния:
Mozilla Firefox 1.0.6
Цитата
Ваш браузер: Netscape Navigator
Версия: 5
Ваша ОС: Windows

IE 6.0
Цитата
Ваш браузер: Microsoft Internet Explorer
Версия: 4
Ваша ОС: Windows

Opera 8.01
Цитата
Ваш браузер: Opera
Версия: 4
Ваша ОС: Windows



--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Aliance
Дата 16.8.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Все верно, за исключением версии.
Я не доделал еще =)
PM MAIL WWW ICQ Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0994 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.