Введение
В этом лабе мы будем изучать API буфера обмена в JavaScript и узнаем, как копировать текст асинхронно в буфер обмена. Вы научитесь проверять доступность API и использовать его для записи текста в буфер обмена. В конце этого лабе вы глубоко поймете, как использовать API буфера обмена в своих JavaScript-приложениях.
Функция для копирования строки в буфер обмена
Для копирования строки в буфер обмена используйте функцию copyToClipboardAsync. Функция возвращает промис, который разрешается, когда содержимое буфера обмена обновлено. Вот шаги:
- Проверьте, доступен ли API буфера обмена, проверив, являются ли
Navigator,Navigator.clipboardиNavigator.clipboard.writeTextистинными с использованием инструкцииif. - Если API буфера обмена доступен, используйте
Clipboard.writeText()для записи заданного значенияstrв буфер обмена. - Возвращаем результат
Clipboard.writeText(), который является промисом, разрешающимся, когда содержимое буфера обмена обновлено. - Если API буфера обмена недоступен, отклоните промис с соответствующим сообщением об ошибке с использованием
Promise.reject(). - Если вам нужно поддерживать старые браузеры, используйте
Document.execCommand()вместоClipboard.writeText(). Вы можете узнать больше об этом в сниппетеcopyToClipboard.
Вот функция copyToClipboardAsync:
const copyToClipboardAsync = (str) => {
if (navigator && navigator.clipboard && navigator.clipboard.writeText) {
return navigator.clipboard.writeText(str);
}
return Promise.reject("The Clipboard API is not available.");
};
Для использования функции вызовите copyToClipboardAsync с строкой, которую вы хотите скопировать, в качестве аргумента, вот так:
copyToClipboardAsync("Lorem ipsum"); // 'Lorem ipsum' скопировано в буфер обмена.
Резюме
Поздравляем! Вы завершили лабу "Copy to Clipboard Async". Вы можете практиковаться в других лабах в LabEx, чтобы улучшить свои навыки.