Skip to content

Instantly share code, notes, and snippets.

@gspncr
Last active March 24, 2021 10:22
Show Gist options
  • Save gspncr/dadbc9f902e1862cad0b14a0ffe014c2 to your computer and use it in GitHub Desktop.
Save gspncr/dadbc9f902e1862cad0b14a0ffe014c2 to your computer and use it in GitHub Desktop.
rage click detection
<script defer>
<!-- add to page footer -->
let lastClick = 0;
let secondLastClick = 0;
let totalClicks = 0;
let target = null;
let clickedObject = null;
var rageThreshold = 6;
function clickCounter(event){
totalClicks++
if (totalClicks > rageThreshold){
totalClicks = 0;
}
console.log(totalClicks);
}
function rageClick(event) {
var now = Math.floor(Date.now())
if(now - lastClick < 500 && now - secondLastClick && totalClicks >= rageThreshold){
console.log("rage click on element " + clickedObject);
//newrelic.addPageAction(clickedObject, 1);
newrelic.setCustomAttribute("rageClickedElement", clickedObject);
newrelic.addPageAction('rageClick', 1);
}
secondLastClick = lastClick;
lastClick = now;
console.log(event.type + " " + now);
console.log((now - secondLastClick)/1000);
}
function clickedElement(element) {
element = element || window.event;
target = element.target || element.srcElement,
clickedObject = target.id || target.className;
//console.log(text);
}
document.addEventListener('click', clickCounter, false);
document.addEventListener('click', rageClick, false);
document.addEventListener('click', clickedElement, false);
</script>
let lastClick = 0;
let secondLastClick = 0;
let totalClicks = 0;
let target = null;
let clickedObject = null;
var rageThreshold = 6;
function clickCounter(event){
totalClicks++
if (totalClicks > rageThreshold){
totalClicks = 0;
}
console.log(totalClicks);
}
function rageClick(event) {
var now = Math.floor(Date.now())
if(now - lastClick < 500 && now - secondLastClick && totalClicks >= rageThreshold){
console.log("rage click on element " + clickedObject);
//newrelic.addPageAction(clickedObject, 1);
newrelic.setCustomAttribute("rageClickedElement", clickedObject);
newrelic.addPageAction('rageClick', 1);
}
secondLastClick = lastClick;
lastClick = now;
console.log(event.type + " " + now);
console.log( (now - secondLastClick)/1000);
}
function clickedElement(element) {
element = element || window.event;
target = element.target || element.srcElement,
clickedObject = target.id || target.className;
//console.log(text);
}
document.addEventListener('click', clickCounter, false);
document.addEventListener('click', rageClick, false);
document.addEventListener('click', clickedElement, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment