Клуб пользователей блока «Поделиться»

во всплывающем окне не инициализируется скрипт и ничего не показыватся

во всплывающем окне не инициализируется скрипт и ничего не показыватся. например всплывающее окно быстрого просмотра свойств товара. при этом тот же код на странице товара работает.

вот так все остается на странице во всплывающем окне

<div class="share-buttons"><script src="https://yastatic.net/es5-shims/0.0.2/es5-shims.min.js"></script><script src="https://yastatic.net/share2/share.js"></script><div class="ya-share2" data-services="telegram,facebook,whatsapp"></div></div>

а в работающем

<div class="ya-share2 ya-share2_inited" data-services="telegram,facebook,whatsapp"> и ниже куча кода.

возможно как-то надо дополнительно инициализировать скрипт или на странице каталога это делать, а  вот это уже писать во всплывающем окне?

<div class="ya-share2 ya-share2_inited" data-services="telegram,facebook,whatsapp">

прошу помочь кто знает как решить проблему, в первую очередь разработчиков. ведь ситуация показа параметров товара таким образом не нова и не единична. возможно надо упомянуть, что это версия для компьютера и все так же выглядит в хроме и фоксе.

3 комментария
Сергей Тощилин
Сотрудник Яндекса2 июля 2021, 15:33
Добрый день!


Можно рендерить блок после отрисовки всплывающего окна. Для этого можно воспользоваться нашим API: https://yandex.ru/dev/share/doc/dg/api.html


Если вы просто вставите скрипт загрузки блока поделиться (<script src="https://yastatic.net/share2/share.js"></script>) на страницу, но у вас не будет тега <div class="ya-share2", то скрипт загрузится и будет ждать инициализации через API. Таким образом рисовать можно тогда, когда пользователю это действительно нужно.


Единственное, рекомендую в этом случае вставить скрипт куда-нибудь в head страницы, чтобы он точно загрузился до того, как пользователь нажмет на всплывающее окно. Или проверить наличие window.Ya.share2 перед тем, как его вызвать
спасибо. но все же непонятно. там так много разных функций и вариантов расписано, но примеры пространные, без конкретики. можно ли просить привести конкретный пример? после нажатия кнопки формируется модальное окно с тазными данными, вклюяая упомянутый код виджета. если сам скрипт запускать в хэдре, что как ему передать класс к которому он привяжется? так же нужно же потом передавать и для других всплывающих окон для других товаров. странно что отдельно об этом не написано в руководстве. ибо это же очень частая необходимость. или просто я такой непонятливый.
Сергей Тощилин
Сотрудник Яндекса6 июля 2021, 09:05
romanmed2000,
накидал пару примеров: https://jsfiddle.net/ukxy6j05/1/. Прошу не относиться к этому как к best practice — в каждом случае все индивидуально, конечно. Но интерактивные примеры должны дать больше представления о том, как это работает.


Насчет документации — на мой взгляд, описано достаточно понятно и пошагово, что нужно сделать. Интерактива не хватает в ней, согласен, но документация тут скорее более техническая, чем завлекающая, поэтому так:)