(function() {
// Function to parse UTM parameters from current URL
function getUTMParams() {
const urlParams = new URLSearchParams(window.location.search);
const utmParams = {};
for (const [key, value] of urlParams.entries()) {
if (key.startsWith('utm_')) {
utmParams[key] = value;
}
}
return utmParams;
}
// Function to append UTM params to a URL
function appendParamsToUrl(url, params) {
try {
const urlObj = new URL(url, window.location.origin);
for (const key in params) {
if (!urlObj.searchParams.has(key)) {
urlObj.searchParams.set(key, params[key]);
}
}
return urlObj.toString();
} catch (e) {
return url; // If the URL is invalid, return as-is
}
}
// Main function to apply UTM parameters to all anchor tags
function applyUTMParamsToLinks() {
const utmParams = getUTMParams();
if (Object.keys(utmParams).length === 0) return;
const links = document.querySelectorAll('a[href]');
links.forEach(link => {
const originalUrl = link.getAttribute('href');
const newUrl = appendParamsToUrl(originalUrl, utmParams);
link.setAttribute('href', newUrl);
});
}
// Execute on DOMContentLoaded
applyUTMParamsToLinks();
})();