Модификации

Как сделать шаринг с текстом и картинкой попапа, а не всей страницы

Pop-up

Инструкция

Данная модификация позволяет делиться данными из попапа, а не всей страницы целиком. Это удобно, если вам важно, чтобы в социальных сетях отображалась информация именно о попапе, а не о всей странице.
  1. Добавьте HTML‑блок T123 и поместите в него приведённый ниже код.
  2. Для попапов BF503 нужно включить кнопки шаринга в настройках. Без кода шаринг будет делиться просто страницей, а не конкретным фото и заголовком попапа.
Дополнительно:
Если соцсетей меньше, измените цифру в строке if (shareLinks.length < 3) return — замените 3 на количество ваших соцсетей.
Если у вас нет определённой соцсети, удалите из кода часть, которая отвечает за эту соцсеть. Они находятся в самом низу кода и помечены как: //VK, //OK, //Twitter/X.

<!-- Скрипт для шаринга с текстом и картинкой попапа на Tilda с сайта bulgkate.ru -->

<script>
window.onload = function() {
  // URL текущей страницы (кодируем для подстановки в запросы)
  const pageUrl = encodeURIComponent(window.location.href);

  let popupBlocks = Array.from(
    document.querySelectorAll(".t390")
  );

  popupBlocks.forEach((popup) => {
    // Картинка и текст из попапа
    let newShareUrl  = popup.querySelector(".t390__img")?.getAttribute('data-original') || '';
    let newShareText = popup.querySelector(".t390__title")?.textContent || '';

    // Кодируем текст и картинку для URL
    const encodedText = encodeURIComponent(newShareText.trim());
    const encodedImg  = encodeURIComponent(newShareUrl);

    const shareLinks = popup.querySelectorAll(".ya-share2__link");
    if (shareLinks.length < 3) return; // защита, если ссылок меньше

    // VK
    shareLinks[0].setAttribute(
      "href",
      "https://vk.com/share.php?url=" + pageUrl +
      "&title=" + encodedText +
      (encodedImg ? "&image=" + encodedImg : "")
    );  // Можно удалить, если нет такой соцсети 

    // OK
    shareLinks[1].setAttribute(
      "href",
      "https://connect.ok.ru/offer?url=" + pageUrl +
      "&title=" + encodedText +
      (encodedImg ? "&imageUrl=" + encodedImg : "")
    ); // Можно удалить, если нет такой соцсети 

    // Twitter / X
    shareLinks[2].setAttribute(
      "href",
      "https://twitter.com/intent/tweet?text=" + encodedText +
      "&url=" + pageUrl +
      "&utm_source=share2"
    ); // Можно удалить, если нет такой соцсети 
    
  });
}
</script>