popov . dev

Главная

Библиотека

Статьи

Как получить дос...

Как получить доступ к буферу обмена в 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 для выполнения соответствующих команд. Также, как и упоминали в этой статье, если эти команды не найдены, вам может потребоваться переустановить или использовать какой-либо запасной вариант.

Комментарии

Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте