Skip to content

Instantly share code, notes, and snippets.

@TexRx
Last active August 29, 2015 14:06
Show Gist options
  • Save TexRx/4fd5f59edf9b5d42f875 to your computer and use it in GitHub Desktop.
Save TexRx/4fd5f59edf9b5d42f875 to your computer and use it in GitHub Desktop.
Google Tag Manger Custom Events
<script>
var selectEls = document.getElementsByTagName('select'),
selectIdx = selectEls.length,
customEvent = {};
function addListener( element, type, callback ) {
if ( element.addEventListener ) element.addEventListener( type, callback );
else if ( element.attachEvent ) element.attachEvent( 'on' + type, callback );
}
while ( --selectIdx >= 0 ) {
addListener( selectEls[selectIdx], 'change', function() {
customEvent = {
"event": "gtm.change",
"gtm.element": this,
"gtm.elementClasses": this.className,
"gtm.elementId": this.id,
"gtm.elementTarget": this.target
};
dataLayer.push(customEvent);
});
}
</script>
<script>
var ENTER_KEY = 13;
var els, elsIdx, customEvent = {};
function addListener( element, type, callback ) {
if ( element.addEventListener ) element.addEventListener( type, callback );
else if ( element.attachEvent ) element.attachEvent( 'on' + type, callback );
}
function findAllInputsElements() {
return document.getElementsByTagName('input');
}
els = findAllInputElements();
elsIdx = els.length;
while ( --elsIdx >= 0 ) {
addListener( els[elsIdx], 'keydown', function(e) {
var evt = e || window.event,
key = evt.which ? evt.which : evt.keyCode;
if( key !== ENTER_KEY ) { return; }
customEvent = {
"event": "gtm.keydown",
"gtm.element": this,
"gtm.elementClasses": this.className,
"gtm.elementId": this.id,
"gtm.elementTarget": this.target
};
dataLayer.push(customEvent);
});
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment