
29.01.2007, 19:42
|
|
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 : "+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 : Internet Explorer <br/>Browser version in User-Agent is: "+ 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 : Opera <br/>Browser version in User-Agent is: "+ 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 : Mozilla <br/>Browser version in User-Agent is: "+ parseFloat(productVersion)); } if (productVersion == "") { out("Failed to fingerprint browser name , but i suggest it is "+window.navigator.userAgent); } }
Пример страницы _http://underwater.xtoolz.ru/test.html
|
|
|