Clipboard.writeText () не работает в Mozilla и IE - PullRequest
0 голосов
/ 05 сентября 2018

Использую следующую функцию, чтобы добавить текст в буфер обмена:

navigator.clipboard.writeText('Text to be copied').then(function() {
            console.log('Template copied to clipboard')
          }, function() {
            console.log('Unable to write to clipboard. :-(');
          });

К сожалению, это не работает на Mozilla & IE. Он отлично работает на Chrome. Я уже пробовал использовать:

Document.execCommand('copy')

Я нашел этот учебник в developers.google.com, но, похоже, пример работает нормально в Chrome, а не в других браузерах. Что я тут не так делаю?

1 Ответ

0 голосов
/ 02 октября 2018

Я не эксперт по веб-разработке пользовательского интерфейса. Я столкнулся с подобной ситуацией, и я попытался использовать Document.execCommand ('copy') . У меня это тоже не сработало. Итак, я заставил его работать как на IE, так и на Chrome вот так. Я надеюсь, что этот блок кода поможет вам разобраться в этом.

$scope.CopyToClipBoard = function (text) {        
    if (navigator.clipboard != undefined) {//Chrome
        navigator.clipboard.writeText(text).then(function () {
            console.log('Async: Copying to clipboard was successful!');
        }, function (err) {
            console.error('Async: Could not copy text: ', err);
        });
    }
    else if(window.clipboardData) { // Internet Explorer
        window.clipboardData.setData("Text", text);
    }
};

Я взял решение IE отсюда: Как скопировать в буфер обмена в JavaScript?

...