(function() { // ========== НАСТРОЙКИ (измените под себя) ========== var YOUR_DOMAIN = 'www.nlpspb.ru/'; // Укажите свой домен без http:// var FIRST_FIELD_NAME = 'UF_CRM_FIRST_SOURCE'; // Имя поля для первого источника var CURRENT_FIELD_NAME = 'UF_CRM_CURRENT_SOURCE'; // Имя поля для последнего внешнего источника // =================================================== // Функция определения источника по рефереру function getSourceFromReferrer(referrer) { if (!referrer) return 'Прямой переход'; try { var url = new URL(referrer); var hostname = url.hostname.toLowerCase(); if (hostname.includes('yandex')) return 'Яндекс / Органический поиск'; if (hostname.includes('google')) return 'Google / Органический поиск'; if (hostname.includes('mail.ru')) return 'Mail.ru / Органический поиск'; if (hostname.includes('bing')) return 'Bing / Органический поиск'; return 'Другой источник: ' + hostname; } catch(e) { return 'Неизвестный источник'; } } // Проверяем, является ли реферер внутренним (с вашего сайта) function isInternalReferrer(referrer) { if (!referrer) return false; try { var url = new URL(referrer); var hostname = url.hostname.toLowerCase(); return hostname.includes(YOUR_DOMAIN); } catch(e) { return false; } } // ---------- 1. Сохраняем источники ---------- var referrer = document.referrer; var source = getSourceFromReferrer(referrer); // Первый источник (только если ещё не сохранён) if (!localStorage.getItem('first_source')) { localStorage.setItem('first_source', source); } // Текущий внешний источник (перезаписываем, только если реферер внешний) if (!isInternalReferrer(referrer)) { sessionStorage.setItem('current_source', source); } // ---------- 2. Подставляем значения в поля формы (если они есть) ---------- function fillFields() { var firstField = document.querySelector('input[name="' + FIRST_FIELD_NAME + '"]'); var currentField = document.querySelector('input[name="' + CURRENT_FIELD_NAME + '"]'); if (firstField) { var firstVal = localStorage.getItem('first_source'); if (firstVal) firstField.value = firstVal; } if (currentField) { var currentVal = sessionStorage.getItem('current_source'); if (currentVal) currentField.value = currentVal; } } // Ждём загрузки DOM, чтобы поля точно были доступны if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fillFields); } else { fillFields(); } })();