Показать сообщение отдельно

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

Репутация: 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