Копирование / вставка не работает в расширении Chrome - PullRequest
1 голос
/ 03 августа 2011

После копирования / вставки кода не работает в расширении Chrome, Мне нужно написать расширение Chrome, которое копирует и вставляет данные с помощью буфера обмена.

Я пишу следующий код на странице Backgroung.html, но он не работает.

    function buttonClick(){

               document.getElementById('initialText').select();


        chrome.experimental.clipboard.executeCopy(1, function() {
            alert("Copy");
            document.getElementById('nameText').focus();


            chrome.experimental.clipboard.executePaste(1, function() {
                alert("Paste");
            });
        });
      }

Ответы [ 2 ]

8 голосов
/ 04 августа 2011

Начиная с Chrome 13, доступ к буферу обмена больше не экспериментальный.

Команды теперь document.execCommand('paste'), document.execCommand('copy') и document.execCommand('cut').

Однако необходимо добавить разрешения в манифест : "clipboardRead" и "clipboardWrite".

Попробуйте реализовать вышеизложенное и посмотрите, как вы справляетесь.

5 голосов
/ 03 августа 2011

для устранения очевидного;добавили ли вы в свой манифест разрешение "экспериментальный" и используете ли вы последнюю версию dev для Chrome , как указано в официальной документации ?

В противном случае, я не уверен, что может вам помочь, поскольку я не использую экспериментальный API из-за того, что они не могут быть использованы в производстве.Существует обходной путь для копирования без использования экспериментального API (с использованием поля ввода и document.execCommand ), но я не уверен, как вставить без него.

РЕДАКТИРОВАТЬ:

Я только что заметил, что experimental.clipboard больше не указан на странице экспериментального API .Может случиться так, что это пространство имен устарело / прекращено, что может случиться при использовании экспериментального API.Простым тестом для этого будет вставка:

console.log(typeof chrome.experimental.clipboard);
console.log(typeof chrome.experimental.clipboard.executeCopy);
console.log(typeof chrome.experimental.clipboard.executePaste);

, которая должна вывести следующую консоль для вашей фоновой страницы;

> object
> function
> function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...