Na początek skrypt tracker.js
var bustersT = {
_key : '',
init : function(key) {
this._key = key;
},
_trackEvent : function(name, value) {
var img = document.createElement('IMG');
img.src = 'http://tracker.pl/'+value+'/'+name+'.png?'+(Math.random());
},
eOrder : function(options) {
options.key = this._key;
var opt64 = _base64(JSON.stringify(options));
this._trackEvent('eOrder', opt64);
}
}
var _phpbustersTtmp = [];
if((typeof window._phpbustersT) == 'object' && typeof window._phpbustersT.length != 'undefined' && window._phpbustersT.length > 0)
{
_phpbustersTtmp = window._phpbustersT;
}
window._phpbustersT = {
push : function(value)
{
if(value[0] == 'key')
{
bustersT.init(value[1]);
}
else
{
bustersT[value[0]](value[1]);
}
}
}
for(var i=0; i<_phpbustersTtmp.length; i++)
{
window._phpbustersT.push(_phpbustersTtmp[i]);
}
W skrypcie wykorzystana jest metoda _base64. Takiej metody nie ma w javascript. Należy użyć zewnętrznej biblioteki do kodowania base64 lub napisać własną funkcję (to bardzo proste - postaram się opisać to w jednym z kolejnych postów).
Skrypt wykorzystuje kilka "sprytnych" możliwości JS.
Po pierwsze, można go załadować w dowolnym momencie, dzięki "symulacji" metody "push" obiektu Array.
Po drugie, skrypt dynamicznie tworzy nam element obrazka (tag img). Dzięki temu możemy przekazać dane do skryptu, który znajduje się w innej domenie niż śledzona strona (odwołanie AJAX zostało by zablokowane).
Po trzecie, dzięki temu, że skrypt również dynamicznie osadzamy w kodzie strony, nie będzie on powodował spowolnienia lub "zawieszenia" się śledzonego serwisu.
W kolejnym poście przedstawię skrypt php, który odbierze i zapisze dane z tracker.js.
Brak komentarzy:
Prześlij komentarz