santanavagner's picture
Upload 72 files
11276e2 verified
raw
history blame
1.78 kB
document.addEventListener('DOMContentLoaded', function() {
const array = new Uint32Array(1);
window.crypto.getRandomValues(array);
const userId = "id" + array[0].toString(16);
const textarea = document.getElementById('prompt');
const recom = document.getElementById('recommendation');
let activityData = [];
// waits for the page to fully load before attaching event listeners
function logActivity(event) {
//if (event.target.parentNode.id == "recommendation") console.log(event.target.textContent);
// function records the data and logs it to the console
const timestamp = new Date().toISOString();
const buttonId = event.target.getAttribute('bx--tag');
const activity = {
//records event type, target element, timestamp for a userid
userId: userId,
type: event.type,
target: event.target.tagName,
timestamp: timestamp,
text: textarea.value,
recommentation: recom.textContent,
label: event.target.textContent
};
activityData.push(activity);
// logs to console
console.log(JSON.stringify(activity));
}
['click', 'keypress'].forEach(eventType => {
document.addEventListener(eventType, logActivity, true);
});
window.addEventListener('beforeunload', function() {
// send data to server before page unload or when user navigates away or closes the page
// with navigator.sendBeacon
if (activityData.length > 0) {
localStorage.setItem('analyticsData', JSON.stringify(activityData));
var blob = new Blob([JSON.stringify({activityData})], {type : 'application/json; charset=UTF-8'});
navigator.sendBeacon('/log', blob);
}
});
});