Как получить доступ к буферу обмена в JavaScript
В современных браузерах мы можем использовать Clipboard API. Для записи указанного содержимого в буфер обмена можно реализовать следующую функцию:
async function copy(text) {
await navigator.clipboard.writeText(text);
}
Чтение содержимого из буфера обмена:
async function paste() {
return navigator.clipboard.readText();
}
Это достаточно просто, однако имейте в виду, что его можно использовать только в безопасном контексте, например, в локальной службе или службе HTTPS. При доступе к буферу обмена в браузере также появится окно подтверждения:
В дополнение к этому, если у вас есть требования к совместимости, вам необходимо использовать устаревший API Document.execCommand(), а процесс внедрения относительно сложен. Это то, что делают некоторые сторонние библиотеки, такие как copy-to-clipboard.
Далее давайте поговорим о том, как получить доступ к буферу обмена в Node.js Для этого мы можем использовать дочерний процесс для вызова системной команды. В трех основных системах (Windows, Mac или Linux) есть разные команды, о которых мы расскажем в следующей статье.
Не забывайте, что нам нужно определить, в какой системе находится текущая среда во входном файле, мы можем использовать node:process, чтобы сделать простое заключение:
const process = require('node:process');
console.log(process.platform);
Значение process.platform - darwin для Mac; win32 для Windows; linux для Linux. Но если программа запускается в подсистеме Windows для Linux, мы также получаем linux, что будет проблемой, мы можем использовать библиотеку is-wsl, чтобы отличить ее. Более подробный код:
const process = require('node:process');
const isWSL = require('is-wsl');
const platform = (() => {
switch (process.platform) {
case 'darwin':
return 'Mac';
case 'win32':
return 'Windows';
case 'linux':
if (isWSL) {
return 'Windows';
}
return 'Linux';
default:
return '';
}
})();
console.log('platform: ', platform);
Зная запущенную платформу, вы можете использовать дочерний процесс в Node.js для выполнения соответствующих команд. Также, как и упоминали в этой статье, если эти команды не найдены, вам может потребоваться переустановить или использовать какой-либо запасной вариант.
Комментарии
Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте