Я создаю расширение Chrome.Я хотел бы видеть, что пользователи копируют в свой буфер обмена из Chrome.Вот что я сейчас работаю в скрипте контента:
document.addEventListener(
"copy",
() => navigator.clipboard.readText().then(
text => console.log("copied text: " + text)
)
);
По соображениям безопасности, которые имеют смысл, Chrome не позволяет получить буфер обмена из самого события копирования.Вместо этого я должен получить это от navigator
.Единственная проблема заключается в том, что Chrome запрашивает у пользователя разрешение каждый раз, когда он копирует что-то с другого веб-сайта.
Это имеет смысл с точки зрения безопасности.Поскольку скрипт содержимого действует так, как будто он выполняется на веб-странице, имеет смысл, что Chrome хочет проверить, доверяет ли пользователь сайту.Тем не менее, я пытаюсь сделать это с расширением Chrome , поэтому в идеале пользователь должен просто «доверять мне» один раз.В моих целях пользователю слишком неудобно нажимать кнопку «Разрешить» на каждой новой странице, с которой они что-то копируют.
Я что-то искал в API Chromeэто помогло бы мне в этом случае, но я потерпел неудачу.Я вижу, что можно вручную что-то скопировать для пользователя, но я бы хотел посмотреть, что пользователь сам копирует.Возможно ли то, что я ищу?
РЕДАКТИРОВАТЬ:
Другой потенциальный обходной путь: я мог бы позвонить window.getSelection().toString()
, чтобы увидеть, что пользователь выделил в данный момент, и предположить, что это было только что скопировано,Однако, похоже, что это не всегда дает правильные результаты, а зависимость от этого обходного пути кажется ошибочной.Это лучшее решение?