-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
125 lines (101 loc) · 2.49 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!DOCTYPE html>
<html id="html" onclick="storeClick(event)" onmousemove="storeMove(event)">
<head>
<title>App</title>
<style>
body {
margin: 0px;
}
</style>
</head>
<body>
<img src="http://s29.postimg.org/3qb1yak3r/spring.png"></img>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
var ID;
function getID() {
var req = new XMLHttpRequest();
req.open("GET","http://localhost:8001//getid", true);
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
ID = parseInt(req.responseText);
}
}
req.send();
}
getID();
//track info
var CLICKS = [];
var MOVES = [];
var SCROLLS = [];
var LINKS_HOVERED = [];
//Send an ajax request every 5 seconds.
window.setInterval(function(){ //setTimeout also works
var obj = {"clicks":CLICKS,"moves":MOVES,"scrolls":SCROLLS,
"hovers":LINKS_HOVERED,id:ID};
post(JSON.stringify(obj));
CLICKS = [];
MOVES = [];
SCROLLS = [];
LINKS_HOVERED = [];
}, 5000);
function post(data) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST","http://localhost:8001", true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
str = xmlhttp.responseText;
//console.log(str);
}
}
xmlhttp.send(data);
}
/*
storeClick and storeMove can either be properties
of the document or of an html element.
Need to be defined at parse time.
*/
function storeClick(event) {
var x = event.clientX;
var y = event.clientY;
var t = (new Date()).getTime();
CLICKS.push([x,y,t]);
}
/*
Fired only when mouse moved.
At most 100 times per second.
*/
function storeMove(event) {
var x = event.clientX; //event.pageX also works
var y = event.clientY;
var t = (new Date()).getTime();
MOVES.push([x,y,t]);
}
function storeScroll(event) {
var t = (new Date()).getTime();
SCROLLS.push(t);
}
function storeHover(index) {
var t = (new Date()).getTime();
LINKS_HOVERED.push([index,t]);
}
/*jQuery*/
$(document).ready(function(){
$(document).click(function(){
//click the whole document
});
$.each($("a"), function(index,value) {
$(this).hover(function(){
//on enter
storeHover(index);
}, function(){
//on leave
});
});
});
</script>
<!--
<script src="file:///home/jiri/Code/MouseTracker/tracking.js"></script>
-->
</body>
</html>