Merge pull request #3608 from fauzora/fix/tracker-configuration
Some checks are pending
Node.js CI / build (mysql, 18.18) (push) Waiting to run
Node.js CI / build (postgresql, 18.18) (push) Waiting to run

fix(hash): improve URL normalization and handling in tracking functions
This commit is contained in:
Mike Cao 2025-09-16 22:44:51 -07:00 committed by GitHub
commit 39c99997ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -38,6 +38,18 @@
/* 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 = () => ({
website,
screen,
@ -61,11 +73,7 @@
if (!url) return;
currentRef = currentUrl;
currentUrl = new URL(url, location.href);
if (excludeSearch) currentUrl.search = '';
if (excludeHash) currentUrl.hash = '';
currentUrl = currentUrl.toString();
currentUrl = normalize(new URL(url, location.href).toString());
if (currentUrl !== currentRef) {
setTimeout(track, delayDuration);
@ -210,8 +218,9 @@
};
}
let currentUrl = href;
let currentRef = referrer.startsWith(origin) ? '' : referrer;
let currentUrl = normalize(href);
let currentRef = normalize(referrer.startsWith(origin) ? '' : referrer);
let initialized = false;
let disabled = false;
let cache;