Clipboard.writeText() 在 Mozilla 和 IE 上不起作用

del*_*rce 3 javascript internet-explorer mozilla google-chrome

我正在使用以下函数将一些文本放入剪贴板:

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

不幸的是,它不适用于 Mozilla 和 IE。它在 Chrome 上运行良好。我已经尝试使用:

Document.execCommand('copy')
Run Code Online (Sandbox Code Playgroud)

我在 developer.google.com 上找到了这个教程,但是这个例子在 Chrome 中似乎运行良好,而在其他浏览器中却没有。我在这里做错了什么?

Seb*_*nes 6

我不是 UI Web 开发方面的专家。我遇到过类似的情况,我也尝试使用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);
    }
};
Run Code Online (Sandbox Code Playgroud)

我从这里获取了 IE 解决方案: How do I copy to the clipboard in JavaScript?