Clipboard
Этот плагин добавляет новое магическое свойство $clipboard
во все ваши компоненты Alpine, которое можно использовать для копирования любого фрагмента данных в буфер обмена пользователя.
Установка
Вы можете использовать этот плагин, включив его из тега <script>
или установив с помощью менеджера пакетов.
Через CDN
Вы можете подключить CDN-сборку этого плагина с помощью тега <script>
, только подключать нужно ДО основного JS-файла Alpine.
Через менеджер пакетов
Вы можете установить Clipboard для использования внутри вашей сборки следующим образом:
Затем инициализируйте его в своей сборке:
Использование
Чтобы скопировать некоторые данные в буфер обмена, вызовите $clipboard
из обработчика события в вашем компоненте:
Директива
В этот пакет также входит директива x-clipboard
, которую можно добавить к любому элементу (обычно кнопке), и она будет копировать результат выражения при нажатии.
Если вы выполняете рендеринг на сервере, вы можете предпочесть скопировать необработанное содержимое вместо того, чтобы оценивать выражение как JavaScript. Это можно сделать, добавив к директиве модификатор .raw
.
Вот фрагмент разметки Laravel Blade для примера:
Объект и массив
Поскольку в функцию $clipboard
можно передавать любые свойства, если вы передадите объект или массив, то перед копированием в буфер обмена он будет пропущен через JSON.stringify
:
Теперь буфер обмена будет содержать ["foo", "bar"]
.
Хуки
При установке этого пакета через npm можно использовать метод Clipboard.configure()
, чтобы прикрепить хук onCopy
к буферу обмена: