Merge pull request #3608 from fauzora/fix/tracker-configuration
fix(hash): improve URL normalization and handling in tracking functions
This commit is contained in:
@@ -38,6 +38,18 @@
|
|||||||
|
|
||||||
/* Helper functions */
|
/* Helper functions */
|
||||||
|
|
||||||
|
const normalize = raw => {
|
||||||
|
if (!raw) return raw;
|
||||||
|
try {
|
||||||
|
const u = new URL(raw, location.href);
|
||||||
|
if (excludeSearch) u.search = '';
|
||||||
|
if (excludeHash) u.hash = '';
|
||||||
|
return u.toString();
|
||||||
|
} catch (e) {
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const getPayload = () => ({
|
const getPayload = () => ({
|
||||||
website,
|
website,
|
||||||
screen,
|
screen,
|
||||||
@@ -61,11 +73,7 @@
|
|||||||
if (!url) return;
|
if (!url) return;
|
||||||
|
|
||||||
currentRef = currentUrl;
|
currentRef = currentUrl;
|
||||||
currentUrl = new URL(url, location.href);
|
currentUrl = normalize(new URL(url, location.href).toString());
|
||||||
|
|
||||||
if (excludeSearch) currentUrl.search = '';
|
|
||||||
if (excludeHash) currentUrl.hash = '';
|
|
||||||
currentUrl = currentUrl.toString();
|
|
||||||
|
|
||||||
if (currentUrl !== currentRef) {
|
if (currentUrl !== currentRef) {
|
||||||
setTimeout(track, delayDuration);
|
setTimeout(track, delayDuration);
|
||||||
@@ -210,8 +218,9 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let currentUrl = href;
|
let currentUrl = normalize(href);
|
||||||
let currentRef = referrer.startsWith(origin) ? '' : referrer;
|
let currentRef = normalize(referrer.startsWith(origin) ? '' : referrer);
|
||||||
|
|
||||||
let initialized = false;
|
let initialized = false;
|
||||||
let disabled = false;
|
let disabled = false;
|
||||||
let cache;
|
let cache;
|
||||||
|
|||||||
Reference in New Issue
Block a user