ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

JavaScript - полезные трюки и решения
  #1  
Старый 29.01.2007, 19:42
Аватар для gemaglabin
gemaglabin
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме:
7681825

Репутация: 4451


По умолчанию JavaScript - полезные трюки и решения

Начнем

Потребовалось точно узнать что за браузер использует пользователь . Тк способ с HTTP_USER_AGENT не является стопроцентным надо было найти другое решение. После ковыряния интернета в поисках нужной информации , наткнулся на соответсвующий док от mozilla dev team http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html , но к сожалению они наивно верят что браузер можно точно определить используя navigator.userAgent; , поэтому я прибег к другому выходу - нашел различия в обработке js и результат перед вами - скрипт точно обрабатывает движки на Gecko ( Firefox,Netscape,Mozilla) , Оперу и ИЕ.

PHP код:
function out(value)
 {
  
document.getElementById("result").innerHTML document.getElementById("result").innerHTML value;
 }

 function 
testBrowser()
 {
  
productVersion "";
  
out("Suggested browser&nbsp;:&nbsp;"+window.navigator.userAgent+"<br/>");
  if ( 
document.defaultCharset != '' && document.defaultCharset != undefined && document.characterSet == undefined && document.body)
  { 
   
productVersion=window.navigator.userAgent.substr(window.navigator.userAgent.indexOf("MSIE")+5,3);
   
out("Detected browser&nbsp;:&nbsp; Internet Explorer&nbsp;<br/>Browser version in User-Agent is:&nbsp;"parseFloat(productVersion));
  }
  if (
window.opera && document.defaultCharset == undefined &&  document.characterSet != "" &&  document.characterSet != undefined && self.innerHeight)
  { 
   
productVersion=window.navigator.userAgent.substr(window.navigator.userAgent.indexOf("Opera")+6,4);
   
out("Detected browser&nbsp;:&nbsp; Opera&nbsp;<br/>Browser version in User-Agent is:&nbsp;"parseFloat(productVersion));
  }
  if (
document.defaultCharset == undefined && !window.opera  &&  document.characterSet != "" && (self.innerHeight))
  { 
   
productVersion=window.navigator.userAgent.substr(window.navigator.userAgent.indexOf("Gecko")+6,8)+ ' ('window.navigator.userAgent.substr(8,3) + ')';
   
out("Detected browser&nbsp;:&nbsp; Mozilla&nbsp;<br/>Browser version in User-Agent is:&nbsp;"parseFloat(productVersion));
  }
  if (
productVersion == "")
  {
   
out("Failed to fingerprint browser name , but i suggest it is&nbsp;"+window.navigator.userAgent);
  }


Пример страницы _http://underwater.xtoolz.ru/test.html
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проводим XSS без javascript Xex Авторские статьи 23 31.08.2007 04:21
Основы JavaScript .Slip Авторские статьи 20 16.05.2006 23:44
Books JS FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:57
Bypassing JavaScript Filters the Flash! Attack k00p3r Чужие Статьи 0 12.07.2005 16:11



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ