使用Firefox、Safari和Chrome在剪贴板上复制?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

在InternetExplorer中,可以使用clipboardData对象访问剪贴板。如何在Firefox、Safari和/或Chrome中做到这一点?

提问于
用户回答回答于

现在有一种方法可以在大多数现代浏览器中轻松地使用

document.execCommand('copy');

这将复制当前选定的文本。可以使用以下方法选择textArea或输入字段

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

一个完整的例子应该是

<html>
<head>
    <title>copy test</title>
</head>
<body>
    <button onclick="copier()">Copy</button>
    <textarea id="myText">Copy me PLEASE!!!</textarea>

    <script>
        function copier(){
            document.getElementById('myText').select();
            document.execCommand('copy');
        }
    </script>
</body>
</html>
用户回答回答于

Firefox不允许您将文本放在剪贴板上。但是,使用Flash是可行的。

function copyIntoClipboard(text) {

    var flashId = 'flashId-HKxmj5';

    /* Replace this with your clipboard.swf location */
    var clipboardSWF = 'http://appengine.bravo9.com/copy-into-clipboard/clipboard.swf';

    if(!document.getElementById(flashId)) {
        var div = document.createElement('div');
        div.id = flashId;
        document.body.appendChild(div);
    }
    document.getElementById(flashId).innerHTML = '';
    var content = '<embed src="' + 
        clipboardSWF +
        '" FlashVars="clipboard=' + encodeURIComponent(text) +
        '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashId).innerHTML = content;
}

扫码关注云+社区