Получить разрешение для расширения Chrome на чтение скопированного текста - PullRequest
0 голосов
/ 17 октября 2018

Я создаю расширение 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(), чтобы увидеть, что пользователь выделил в данный момент, и предположить, что это было только что скопировано,Однако, похоже, что это не всегда дает правильные результаты, а зависимость от этого обходного пути кажется ошибочной.Это лучшее решение?

...