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

问题描述 投票:0回答:2

我正在使用以下函数将一些文本复制到剪贴板:

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中找到了这个tutorial,但该示例似乎在Chrome中运行良好,而在其他浏览器中则不然。我在这里做错了什么?

javascript google-chrome internet-explorer mozilla
2个回答
12
投票

我不是 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);
    }
};

我从这里获取了IE解决方案: 如何在 JavaScript 中复制到剪贴板?


0
投票
var text = document.getElementById('copyText');
text.select();  
document.execCommand("copy");  
© www.soinside.com 2019 - 2024. All rights reserved.