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

Не отображается пункт "Скопировать ссылку"

Доброго времени суток!

Возникли сложности с отображением пункта "Скопировать ссылку". Этот пункт не отображается в всплывающем меню, как показано в конструкторе. Копирование кода из конструктора, написание через data-атрибуты или через API никаких результатов не дало. Пункт "Скопировать ссылку" отображается только в том случае, если лимит соцсетей равен или больше количества добавленных соцсетей, при установленном параметре copy: "extraItem". Без этого параметра не отображается никогда. В консоли пусто.

В чём может быть проблема и как её исправить? 

Заранее спасибо.

9 комментариев
Сергей Тощилин
Сотрудник Яндекса23 декабря 2020, 16:39
Добрый день!


А можете, пожалуйста, собрать демо где-нибудь на codepen`е?
Или привести пример сайта, где это воспроизводится?
Сайт пока развернут локально.
Ссылка на codepen - https://codepen.io/PzSchreck/pen/jOMGpYd 


На codepen пункт "Скопировать ссылку" отображается, только ссылка не копируется. Поделиться через соцсети работает. 


На сайте по-прежнему пункт "Скопировать ссылку" отображаться не хочет. Хотя всё остальное работает, кнопки "Поделиться" для всех мессенджеров работают.
Сергей Тощилин
Сотрудник Яндекса24 декабря 2020, 10:40
kitaev-sd,
Без примера, увы, не могу ничем помочь


В примере ссылка не копируется скорее всего из-за того, что codepen рендерит блок в iframe, тут ничего не поделать
Собрал проверочный стенд без iframe https://yastatic.net/share2/pages/gemini/playground.html
Проверил под последним хромом на примере, как на codepen — кнопка рендерится и работает


По коду могу сказать, что кнопка скопировать ссылку не будет показываться, если браузер не поддерживает свойство navigator.clipboard, но у него поддержка кажется достаточно хорошая https://developer.mozilla.org/en-US/docs/Web/API/Navigator/clipboard
Это как раз сделано для того, чтобы пользователи, у которых кнопка не будет работать, ее не видели
подтверждаю, описанная проблема есть, 
1) для десктопов - только при открытии страницы с блоком по http, с https:// такой проблемы не наблюдается
2) для мобилок пункт "скопировать ссылку" не появляется нигде, например
если зайти с iphone его нет , ни на 
 https://codepen.io/PzSchreck/pen/jOMGpYd 

ни у Вас в примере - https://yastatic.net/share2/pages/gemini/playground.html


если выставить 
curtain = true
limit=2
Сергей Тощилин
Сотрудник Яндекса18 марта 2021, 10:26
diatech,
кнопка скопировать ссылку не будет показываться, если браузер не поддерживает свойство navigator.clipboard


В случае с http, navigator.clipboard не поддерживается в небезопасном контексте https://w3c.github.io/clipboard-apis/#navigator-interface


В случае с iPhone программный интерфейс navigator.clipboard поддерживается с версии Safari 13.4 и выше
Аналогичная проблема. Ни при каких обстоятельствах пункт не выводится, даже при поддержке navigator.clipboard.
Пример в шапке сайта https://www.gdebar.ru/luchshie-zavedeniya
Обновлено 3 июля 2021, 14:57
Сергей Тощилин
Сотрудник Яндекса3 июля 2021, 18:58
dev@gdebar.ru,
добрый день! У вас указан атрибут data-copy со значением extraItem. Согласно документации, это значение подразумевает, что кнопка будет отображаться в основном списке. Поскольку  основного списка нет, то и кнопке отображаться негде. Вместо этого можно указать значение first или last, тогда пункт будет отображаться внутри попапа. Можно совсем убрать атрибут data-copy, поскольку он имеет значение по умолчанию last


Пример: https://jsfiddle.net/58rtmwg9/
Сергей Тощилин,
Спасибо, даже не заметил, что залил с этим параметром. Короче говоря, проблема была в том, что при локальной разработке вообще не показывается, какие бы комбинации параметров не задавать. Судя по всему из-за отсутствия https в data-url.
Сергей Тощилин
Сотрудник Яндекса4 июля 2021, 18:22
dev@gdebar.ru,
да, увы, есть такая проблема, без https не работает navigator.clipboard


P.S. технически, можно сделать SSL на локалхосте, но если проблема только в кнопке копирования, думаю, можно не заморачиваться и просто собирать в какой-нибудь онлайн песочнице, а потом вставлять себе — результат будет предсказуемым