首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用FireFox、Safari和Chrome在剪贴板上复制/放置文本

使用FireFox、Safari和Chrome在剪贴板上复制/放置文本
EN

Stack Overflow用户
提问于 2008-09-24 13:12:58
回答 13查看 130.1K关注 0票数 114

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

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-12-03 02:32:31

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

代码语言:javascript
复制
document.execCommand('copy');

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

代码语言:javascript
复制
document.getElementById('myText').select();

要以不可见的方式复制文本,您可以快速生成textArea,修改框中的文本,选择它,复制它,然后删除该textArea。在大多数情况下,这个textArea甚至不会闪现到屏幕上。

出于安全原因,浏览器将只允许您复制,如果用户采取了某种行动(即。点击按钮)。一种方法是将onClick事件添加到html按钮,该按钮调用复制文本的方法。

完整的示例:

代码语言:javascript
复制
function copier(){
  document.getElementById('myText').select();
  document.execCommand('copy');
}
代码语言:javascript
复制
<button onclick="copier()">Copy</button>
<textarea id="myText">Copy me PLEASE!!!</textarea>

票数 22
EN

Stack Overflow用户

发布于 2008-09-24 13:17:23

出于安全原因,Firefox不允许您在剪贴板上放置文本。但是,使用Flash有一种解决方法。

代码语言:javascript
复制
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;
}

唯一的缺点是这需要启用Flash。

源代码目前是死的:http://bravo9.com/journal/copying-text-into-the-clipboard-with-javascript-in-firefox-safari-ie-opera-292559a2-cc6c-4ebf-9724-d23e8bc5ad8a/ (它的Google cache也是如此)

票数 50
EN

Stack Overflow用户

发布于 2015-08-11 23:26:21

这是2015年夏天,在围绕Flash的如此多的混乱中,这里是如何完全避免使用它的。

clipboard.js是一个很好的工具,允许将文本或html数据复制到剪贴板。它非常容易使用,只需包含.js并使用如下所示:

代码语言:javascript
复制
<button id='markup-copy'>Copy Button</button>

<script>
document.getElementById('markup-copy').addEventListener('click', function() {
  clipboard.copy({
    'text/plain': 'Markup text. Paste me into a rich text editor.',
    'text/html': '<i>here</i> is some <b>rich text</b>'
  }).then(
    function(){console.log('success'); },
    function(err){console.log('failure', err);
  });

});
</script>

clipboard.js也是on GitHub

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/127040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档