Демо: подмена контактов по UTM

Откройте страницу через локальный HTTP (например npm run demo). Для file:// cookie могут не сохраняться — см. README.

Текущий URL:

Закреплённый источник (getStoredSource()):

1. Базовые ссылки (tel / mailto, смешанный текст)

Позвонить +7 800 123-45-67Написать old@example.com

Добавьте к URL ?utm_source=google и перезагрузите, затем нажмите «Переинициализировать» ниже — подмена применится для ключа google в маппинге.

2. Неизвестный utm_source

Ожидание: DOM не меняется, но источник закрепляется в cookie.

3. SPA (pushState / replaceState)

Если cookie ещё пуста — закрепится первый непустой utm из URL после навигации.

4. Динамические ссылки + MutationObserver

С observe: false новые ссылки не подменятся. С observe: true — подменятся после добавления (переинициализируйте с галочкой в консоли или используйте кнопки ниже).

5. Управление init


    

6. Image map (<area href>)

mail

Координаты упрощены; для проверки достаточно наличия area[href^=mailto:].