За допомогою JavaScript можна зібрати про користувача таку інформацію: яким браузером користується, платформа пристрою, мова, розмір екрану, часова зона і т.п.
Основна інформація береться з об'єктів window i navigator.
Нижче наведена функція info() яка повертає об'єкт який містить зібрані дані:
info=function(){
var a={};
a.url=window.location.href;
if(document.referrer!=location.href && document.referrer!='')a.referrer=document.referrer;
if(navigator.platform)a.platform=window.navigator.platform;
if(window.navigator.hardwareConcurrency)a.hardwareConcurrency=window.navigator.hardwareConcurrency;
a.userAgent=window.navigator.userAgent;
if(window.navigator.connection){
a.connecttionType=window.navigator.connection.type;
a.connecttionDownlinkMax=window.navigator.connection.downlinkMax;
}
a.language=window.navigator.language;
a.vibrate=(window.navigator.vibrate?true:false);
a.maxTouchPoints=(window.navigator.maxTouchPoints?window.navigator.maxTouchPoints:false);
a.width=window.screen.width;
a.height=window.screen.height;
a.colorDepth=window.screen.colorDepth;
a.devicePixelRatio=window.devicePixelRatio;
if(window.screen.orientation){
a.orientation=(window.screen.orientation.type?window.screen.orientation.type:window.screen.orientation);
a.orientationAnge=window.screen.orientation.ange;
}
if(window.navigator.battery){
a.batteryLevel=window.navigator.battery.level*100;
a.batteryCharging=window.navigator.battery.charging;
}
a.notification=(window.Notification?true:false);
a.cookieEnabled=window.navigator.cookieEnabled;
a.webSQL=(window.openDatabase?true:false);
a.javaEnable=window.navigator.javaEnabled();
a.flashEnable=(window.navigator.plugins['Shockwave Flash'] === undefined?false:true);
var date= new Date();
a.date=date.toString();
a.timeZone= date.getTimezoneOffset()/60*-1;return a;
}
Функція в дії:
alert( JSON.stringify( info() ) );
var dani= info(),s='';for(a in dani)s+='<br>'+a+' = '+dani[a];
document.getElementById('rezult').innerHTML=s;
Приклад збору даних на JavaScript і відправкою на сервер за допомогою AJAX:
var xhr = new XMLHttpRequest();
xhr.open('post', 'http://xn--80adth0aefm3i.xn--j1amh/ajax.php?act=test_post', false);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var dani=info();
xhr.send('dani='+JSON.stringify(dani) );
alert(xhr.responseText);