// Parametri da inserire nei link const linkParams = ['utm_source', 'utm_medium', 'utm_campaign', 'cta', 'event', 'utm_content', 'InteractionId'] // Percorsi speciali const specialPaths = ['/domanda', '/domanda_redirect', '/question'] // Funzione per ottenere i domini autorizzati e i loro codici da un file di testo async function getAuthorizedDomains () { const response = await fetch('https://youradvisor.we-wealth.com/hubfs/libraries/js/authorized_domains.txt') const text = await response.text() const lines = text.split('\n') // Ogni linea corrisponde a un dominio e al suo codice const domains = {} for (const line of lines) { const [domain, code] = line.split(';') // Separa il dominio e il codice domains[domain] = code } return domains } getAuthorizedDomains().then(authorizedDomains => { // Trova tutti i link nella pagina const links = document.getElementsByTagName('a') // Ricava i parametri dal sessionStorage const newParams = new URLSearchParams(sessionStorage) // Cicla su tutti i link trovati for (let i = 0; i < links.length; i++) { const link = links[i] // Verifica se link.href è un URL valido try { const url = new URL(link.href) // Se il link è esterno o se è uno dei percorsi speciali if (url.hostname !== window.location.hostname || specialPaths.includes(url.pathname)) { const siteCode = authorizedDomains[url.hostname] // Se il dominio è autorizzato o se è uno dei percorsi speciali if (siteCode || specialPaths.includes(url.pathname)) { // Controllo se ci sono già parametri GET/utm nel link const existingParams = new URLSearchParams(url.search) // Aggiunge i parametri da sessionStorage se non esistono già for (const param of linkParams) { if (!existingParams.has(param) && newParams.has(param)) { existingParams.append(param, newParams.get(param)) } } url.search = existingParams.toString() // Aggiorna il link link.href = url.toString() } } } catch (e) { console.error(`Invalid URL: ${link.href}`) } } })