Задать вопрос
@Alexey-V

Валидный метод для доступа к буферу обмена?

Привет всем. передо мной стоит задача написать плагин для браузера хром, задача которого собирать куки и отправлять их в буфер обмена. С первой частью я справился, но когда дело доходит до отправки кук в буфер то не один из способов не работает. Вот допустим я использую метод chrome.clipboard , но он не отвечает как будто и не поддерживается, проверяю его условным блоком, консоль молчит.
Я пишу:
chrome.cookies.onChanged.addListener(function (changeInfo) {
    //сбор кук в консоль
  let cookie = changeInfo.cookie;
  let url = "ссылка домена";
  let domain = changeInfo.cookie.domain;

  if (domain === url) {
      let cookieKeys = Object.keys(cookie);
      let result = [];
      for (let i = 0; i < cookieKeys.length; i++) {
          result.push(cookieKeys[i]);
      }
      JSON.stringify(result);
  }
});

Данный код успешно собирает куки если мы находимся на опред ресурсе.
Затем если после JSON.stringify(result) добавляю такую констукцию
//блок буфера
      let check = async () => {
          await navigator.permissions.query({name: 'clipboard-write'});
          try {
              let value = JSON.stringify(result);
              if (navigator.clipboard) {
                  await navigator.clipboard.writeText(value);
                  console.log('Done');
              } else {
                  console.log('Fail');
              }
          } catch (err) {
              console.log("error", err)
          }
      }
    check();

То консоль возвращает fail, и не важно синхронно я пишу или код асинхронный, мой код не получает доступа к буферу. Кто то говорит, что метод устарел, кто то говорит, что рабочий. В мануалах всё предельно просто берёшь метод, используешь конструкцию try, catch и всё прекрасно будет работать, что я делаю не так?
  • Вопрос задан
  • 24 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы