Как скопировать в буфер обмена в расширении Chrome со ссылкой? - PullRequest
0 голосов
/ 26 августа 2018

Я недавно создал расширение Chrome впервые. У меня есть кнопка копирования на моей странице, которая прекрасно работает, когда расширение загружается как веб-страница. Однако, когда я загружаю его как расширение, функция копирования не работает.

Мои manifest.json разрешения выглядят так:

"permissions": [
  "webNavigation",
  "storage",
  "clipboardWrite",
  "clipboardRead"
]

Код на моей popout.html странице для копирования выглядит следующим образом:

        <div id="legacyCopyLabel">
            <a onclick="copyText(getElementById('legacy'))" class="alignright">COPY</a>
        </div>

и функция copyText() в моем коде JavaScript выглядит следующим образом:

function copyText(element) {
    var range, selection, worked;

    if (document.body.createTextRange) {
      range = document.body.createTextRange();
      range.moveToElementText(element);
      range.select();
    } else if (window.getSelection) {
      selection = window.getSelection();        
      range = document.createRange();
      range.selectNodeContents(element);
      selection.removeAllRanges();
      selection.addRange(range);
    }

    try {
      document.execCommand('copy');
      updateStatus ('Copied address', 'info');
    }
    catch (err) {
      alert('Unable to copy the address');
    }
  }

Полный код здесь, если вы хотите посмотреть: https://github.com/markallisongit/handcash-chrome

Расширение Chrome находится в магазине Chrome здесь: https://chrome.google.com/webstore/detail/handcash-handle-converter/bnkohbkbipagdhplhkhgonbalbjigpoh

1 Ответ

0 голосов
/ 27 августа 2018

Это не работает, потому что вы используете встроенный JS: <a onclick="...">.
По данным службы безопасности контента Chrome:

Встроенный JavaScript не будет выполняться.Это ограничение запрещает как встроенные блоки, так и встроенные обработчики событий (например).

Решение будет заключаться в том, чтобы поместить ваш код в отдельный файл .js и включить его как обычный JS-скрипт.

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