// Проверяем URL на наличие UTM-меток const urlParams = new URLSearchParams(window.location.search); const hasUtm = Array.from(urlParams.keys()).some(key => key.startsWith('utm_')); // Если UTM есть в URL, сохраняем их в sessionStorage if (hasUtm) { const utmParams = {}; urlParams.forEach((value, key) => { if (key.startsWith('utm_')) utmParams[key] = value; }); sessionStorage.setItem('saved_utm', JSON.stringify(utmParams)); } // Если UTM нет в URL, но есть в sessionStorage – подставляем их в ссылки else if (sessionStorage.getItem('saved_utm')) { const utmParams = JSON.parse(sessionStorage.getItem('saved_utm')); const newUrlParams = new URLSearchParams(window.location.search); // Добавляем UTM к текущему URL (если их ещё нет) Object.entries(utmParams).forEach(([key, value]) => { if (!newUrlParams.has(key)) newUrlParams.set(key, value); }); // Обновляем URL без перезагрузки страницы (чтобы не потерять метки) if (newUrlParams.toString() !== urlParams.toString()) { const newUrl = `${window.location.pathname}?${newUrlParams.toString()}`; window.history.replaceState(null, '', newUrl); } } document.addEventListener('click', function(e) { const link = e.target.closest('a'); if (!link) return; const href = link.getAttribute('href'); const isInternalLink = href && !href.startsWith('http') && !href.startsWith('mailto:'); // Если ссылка ведёт на другую страницу лендинга – добавляем UTM if (isInternalLink && sessionStorage.getItem('saved_utm')) { const utmParams = JSON.parse(sessionStorage.getItem('saved_utm')); const linkUrl = new URL(href, window.location.origin); const linkParams = new URLSearchParams(linkUrl.search); // Добавляем UTM, если их ещё нет в ссылке Object.entries(utmParams).forEach(([key, value]) => { if (!linkParams.has(key)) linkParams.set(key, value); }); // Обновляем ссылку link.setAttribute('href', `${linkUrl.pathname}?${linkParams.toString()}`); } }); document.addEventListener('DOMContentLoaded', function() { const links = document.querySelectorAll('a[href*="portal.rock-west.com"]'); const savedUtm = sessionStorage.getItem('saved_utm'); if (savedUtm) { const utmParams = JSON.parse(savedUtm); const utmString = new URLSearchParams(utmParams).toString(); links.forEach(link => { const separator = link.href.includes('?') ? '&' : '?'; link.href += separator + utmString; }); } });