不使用flash将选定文本复制到剪贴板-必须跨浏览器

我想要一个按钮,它可以选择textarea中的文本并将其复制到剪贴板。我似乎找不到任何在所有浏览器中都能工作且不使用flash的解决方案

这肯定是可行的吗?我在各地都见过,但我想他们用的是flash,如果可能的话,我真的想远离它,因为有些人没有

这就是我到目前为止所做的-它只是选择了文本:

函数copyCode(){
$(“#输出代码”).focus();
$(“#输出代码”)。选择();
}

(焦点并非绝对必要)

execCommand(’copy’)

有一个非常新的选择。它是跨浏览器的,但需要时间,直到每个人都更新了他们的浏览器

它通过使用document.execCommand('copy')工作函数。
使用此功能,您将复制选择文本。这不仅适用于textareas,而且适用于网页上的每个选定文本(如spanpdiv等)

在Internet Explorer 10+、Chrome 43+、Opera 29+和Firefox 41+中提供(请参见此处的execCommand兼容性)

范例

//设置变量
var textarea=document.getElementById(“textarea”);
var-answer=document.getElementById(“copyAnswer”);
var copy=document.getElementById(“copyBlock”);
copy.addEventListener('click',函数(e){
//选择一些文本(也可以创建一个范围)
textarea.select();
//对不受支持的浏览器使用try&catch
试一试{
//重要部分(复制选定文本)
var ok=document.execCommand('copy');
如果(确定)answer.innerHTML='Copied!';
else answer.innerHTML='无法复制!';
}捕捉(错误){
answer.innerHTML='不支持的浏览器!';
}
});
<textarea id=“textarea”rows=“6”cols=“40”>
Lorem ipsum dolor sit amet,eamsemper maiestatis no。
&lt/textarea&gt&书信电报;br/>
<按钮id=“copyBlock”>单击以复制&lt/按钮&gt&书信电报;span id=“copyAnswer”&gt&lt/span>

发表评论