From 74a06dab4d6a4a05d7a4c0c384a826c0d2b1df92 Mon Sep 17 00:00:00 2001 From: Aki Date: Wed, 8 Jul 2020 22:25:16 +0200 Subject: Added client side javascript for tracking --- track.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 track.js diff --git a/track.js b/track.js new file mode 100644 index 0000000..cb8ab72 --- /dev/null +++ b/track.js @@ -0,0 +1,26 @@ +(()=>{ + let startedAt = null + let scrolledTo = null + window.addEventListener("load", ()=>{ + startedAt = new Date() + scrolledTo = window.scrollY + if (window.innerHeight > document.scrollingElement.scrollHeight) { + scrolledTo = document.scrollingElement.scrollHeight + } + }) + window.addEventListener("scroll", (event)=>{ + scrolledTo = Math.max(scrolledTo, window.scrollY + window.innerHeight) + }, false) + window.addEventListener("beforeunload", ()=>{ + let xhr = new XMLHttpRequest() + xhr.open("POST", "https://stats.ignore.pl/entry") + xhr.setRequestHeader("Content-Type", "application/json") + xhr.send(JSON.stringify({ + "location": document.location.href, + "referrer": document.referrer, + "startedAt": startedAt, + "timeSpent": Math.floor((new Date() - startedAt) / 1000), + "scrolledTo": scrolledTo / document.scrollingElement.scrollHeight + })) + }) +})() -- cgit v1.1