Updated ahoy.js
Andrew Kane
committed Aug 27, 2016
commit 1758ad0ce57d30591973b0a2a022646095992c8e
Showing 1
changed file with
23 additions
and 15 deletions
vendor/assets/javascripts/ahoy.js
+23
-15
| @@ | @@ -15,10 +15,11 @@ |
| urlPrefix: "", | |
| visitsUrl: "/ahoy/visits", | |
| eventsUrl: "/ahoy/events", | |
| - | domain: null, |
| + | cookieDomain: null, |
| page: null, | |
| platform: "Web", | |
| - | trackNow: false |
| + | useBeacon: false, |
| + | startOnReady: true |
| }; | |
| var ahoy = window.ahoy || window.Ahoy || {}; | |
| @@ | @@ -52,7 +53,7 @@ |
| } | |
| function canTrackNow() { | |
| - | return config.trackNow && canStringify && typeof(window.navigator.sendBeacon) !== "undefined"; |
| + | return (config.useBeacon || config.trackNow) && canStringify && typeof(window.navigator.sendBeacon) !== "undefined"; |
| } | |
| // cookies | |
| @@ | @@ -66,8 +67,9 @@ |
| date.setTime(date.getTime() + (ttl * 60 * 1000)); | |
| expires = "; expires=" + date.toGMTString(); | |
| } | |
| - | if (config.domain) { |
| - | cookieDomain = "; domain=" + config.domain; |
| + | var domain = config.cookieDomain || config.domain; |
| + | if (domain) { |
| + | cookieDomain = "; domain=" + domain; |
| } | |
| document.cookie = name + "=" + escape(value) + expires + cookieDomain + "; path=/"; | |
| } | |
| @@ | @@ -365,18 +367,24 @@ |
| ahoy.trackChanges(); | |
| }; | |
| - | $(createVisit); |
| + | ahoy.start = function () { |
| + | createVisit(); |
| - | // push events from queue |
| - | try { |
| - | eventQueue = JSON.parse(getCookie("ahoy_events") || "[]"); |
| - | } catch (e) { |
| - | // do nothing |
| - | } |
| + | // push events from queue |
| + | try { |
| + | eventQueue = JSON.parse(getCookie("ahoy_events") || "[]"); |
| + | } catch (e) { |
| + | // do nothing |
| + | } |
| - | for (var i = 0; i < eventQueue.length; i++) { |
| - | trackEvent(eventQueue[i]); |
| - | } |
| + | for (var i = 0; i < eventQueue.length; i++) { |
| + | trackEvent(eventQueue[i]); |
| + | } |
| + | |
| + | ahoy.start = function () {}; |
| + | }; |
| + | |
| + | if (config.startOnReady) { $(ahoy.start); } |
| window.ahoy = ahoy; | |
| }(window)); | |