1/** 2 * tracker.js 3 4 * 5 * Pings tracker.php once per pageview (and again on SPA route changes) 6 7 */ 8(function () { 9 "use strict"; 10 11 // Adjust this if tracker.php lives at a different path or domain. 12 var TRACKER_ENDPOINT = "https://ridesharedriversunited.com/logger/tracker.php"; 13 14 function send(data) { 15 var body = JSON.stringify(data); 16 17 if (navigator.sendBeacon) { 18 var blob = new Blob([body], { type: "application/json" }); 19 navigator.sendBeacon(TRACKER_ENDPOINT, blob); 20 } else { 21 fetch(TRACKER_ENDPOINT, { 22 method: "POST", 23 headers: { "Content-Type": "application/json" }, 24 body: body, 25 credentials: "include", 26 keepalive: true, 27 }).catch(function () { 28 /* fail silently â tracking should never break the page */ 29 }); 30 } 31 } 32 33 function trackPageview() { 34 send({ 35 url: window.location.href, 36 referrer: document.referrer || "", 37 screen: window.screen ? window.screen.width + "x" + window.screen.height : null, 38 }); 39 } 40 41 // Initial pageview 42 trackPageview(); 43 44 // Catch SPA navigations that use the History API 45 var originalPushState = history.pushState; 46 var originalReplaceState = history.replaceState; 47 48 history.pushState = function () { 49 originalPushState.apply(history, arguments); 50 trackPageview(); 51 }; 52 history.replaceState = function () { 53 originalReplaceState.apply(history, arguments); 54 trackPageview(); 55 }; 56 window.addEventListener("popstate", trackPageview); 57})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.