- var Interactor=function(a){this.__init__(a)};Interactor.prototype={__init__:function(a){var b=this;return b.interactions="boolean"!=typeof a.interactions||a.interactions,b.interactionElement="string"==typeof a.interactionElement?a.interactionElement:"interaction",b.interactionEvents=Array.isArray(a.interactionEvents)===!0?a.interactionEvents:["mouseup","touchend"],b.conversions="boolean"!=typeof a.conversions||a.conversions,b.conversionElement="string"==typeof a.conversionElement?a.conversionElement:"conversion",b.conversionEvents=Array.isArray(a.conversionEvents)===!0?a.conversionEvents:["mouseup","touchend"],b.endpoint="string"==typeof a.endpoint?a.endpoint:"/interactions",b.async="boolean"!=typeof a.async||a.async,b.debug="boolean"!=typeof a.debug||a.debug,b.records=[],b.session={},b.loadTime=new Date,b.__initializeSession__(),b.__bindEvents__(),b},__bindEvents__:function(){var a=this;if(a.interactions===!0)for(var b=0;b<a.interactionEvents.length;b++)for(var c=a.interactionEvents[b],d=document.getElementsByClassName(a.interactionElement),e=0;e<d.length;e++)d[e].addEventListener(c,function(b){b.stopPropagation(),a.__addInteraction__(b,"interaction")});if(a.conversions===!0)for(var b=0;b<a.conversionEvents.length;b++)for(var c=a.conversionEvents[b],d=document.getElementsByClassName(a.conversionElement),e=0;e<d.length;e++)d[e].addEventListener(c,function(b){b.stopPropagation(),a.__addInteraction__(b,"conversion")});return window.onbeforeunload=function(b){a.__sendInteractions__()},a},__addInteraction__:function(a,b){var c=this,d={type:b,event:a.type,targetTag:a.target.nodeName,targetClasses:a.target.className,content:a.target.innerText,clientPosition:{x:a.clientX,y:a.clientY},screenPosition:{x:a.screenX,y:a.screenY},createdAt:new Date};return c.records.push(d),c.debug&&(c.__closeSession__(),console.log("Session:\n",c.session)),c},__initializeSession__:function(){var a=this;return a.session={loadTime:a.loadTime,unloadTime:new Date,language:window.navigator.language,platform:window.navigator.platform,port:window.location.port,clientStart:{name:window.navigator.appVersion,innerWidth:window.innerWidth,innerHeight:window.innerHeight,outerWidth:window.outerWidth,outerHeight:window.outerHeight},page:{location:window.location.pathname,href:window.location.href,origin:window.location.origin,title:document.title},endpoint:a.endpoint},a},__closeSession__:function(){var a=this;return a.session.unloadTime=new Date,a.session.interactions=a.records,a.session.clientEnd={name:window.navigator.appVersion,innerWidth:window.innerWidth,innerHeight:window.innerHeight,outerWidth:window.outerWidth,outerHeight:window.outerHeight},a},__sendInteractions__:function(){var a=this,b=new XMLHttpRequest;return a.__closeSession__(),b.open("POST",a.endpoint,a.async),b.setRequestHeader("Content-Type","application/json; charset=UTF-8"),b.send(JSON.stringify(a.session)),a}};
0 commit comments