Ваш браузер устарел рекомендуем обновить его до последней версии
или использовать другой более современный.
function addMaxMessengerIconSmart() { // --- НАСТРОЙКИ --- const MAX_ICON_URL = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Max_logo_2025.png/500px-Max_logo_2025.png'; const MAX_LINK_URL = 'https://max.ru/79029902088'; const MAX_LINK_TEXT = '79029902088'; // Текст для блоков, где есть текст (например, номер телефона) // ----------------- const selectors = ['.socials', '.messengers', '.val.messengers', '.val.socials'].join(', '); const targetContainers = document.querySelectorAll(selectors); if (targetContainers.length === 0) { console.warn('Не найдено ни одного блока для добавления иконки Max.'); return; } targetContainers.forEach(container => { // Проверка, что иконка еще не добавлена if (container.querySelector(a[href="${MAX_LINK_URL}"])) { console.log('Иконка Max уже существует в блоке:', container); return; } // Находим первый дочерний элемент, чтобы использовать его как шаблон const templateElement = container.firstElementChild; if (!templateElement) { console.warn('В блоке нет элементов-шаблонов:', container); return; // Пропускаем пустые блоки } // Клонируем весь элемент-шаблон (например,
...
) const newElement = templateElement.cloneNode(true); // Находим саму ссылку внутри клонированного элемента // или используем сам элемент, если он и есть ссылка const newLink = newElement.querySelector('a') || newElement; if (newLink.tagName !== 'A') { console.warn('Не удалось найти ссылку в элементе-шаблоне.', templateElement); return; } // Обновляем ссылку newLink.href = MAX_LINK_URL; // *ОСНОВНАЯ ЛОГИКА: Определяем тип иконки* const templateImg = templateElement.querySelector('img'); if (templateImg) { // СЦЕНАРИЙ 1: В блоке используются теги для иконок const newImg = newElement.querySelector('img'); newImg.src = MAX_ICON_URL; newImg.alt = 'Max'; // Очищаем текстовое содержимое ссылки на всякий случай newLink.textContent = ''; newLink.appendChild(newImg); } else { // СЦЕНАРИЙ 2: Используется CSS-класс для иконки и текст (ic_whatsapp и номер) const templateLink = templateElement.querySelector('a') || templateElement; // 1. Заменяем текст newLink.textContent = MAX_LINK_TEXT; // 2. Очищаем старые классы, чтобы убрать CSS-иконку (ic_whatsapp и т.п.) newLink.className = ''; // 3. Эмулируем иконку через инлайн-стили, сохраняя отступ const originalStyles = window.getComputedStyle(templateLink); const paddingLeft = originalStyles.paddingLeft; newLink.style.paddingLeft = paddingLeft; // Сохраняем отступ от оригинала newLink.style.backgroundImage = url(${MAX_ICON_URL}); newLink.style.backgroundRepeat = 'no-repeat'; newLink.style.backgroundPosition = 'left center'; // 'contain' хорошо впишет иконку в доступное пространство newLink.style.backgroundSize = 'contain'; } // Добавляем новый элемент в конец контейнера container.appendChild(newElement); console.log('Иконка Max успешно добавлена в блок:', container); }); } // Запускаем функцию addMaxMessengerIconSmart();