mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 12:47:13 +01:00
fix(hash): improve URL normalization and handling in tracking functions
This commit is contained in:
parent
1b6da0aaa0
commit
c5298d5d45
1 changed files with 16 additions and 7 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue