代码呈上:
js
function execClick(){
document.execCommand("copy");
}
function execCopy(event,textDiv){
var thisDiv = document.getElementById(textDiv);
if(isIE()){
if(window.clipboardData){
window.clipboardData.setData("Text", thisDiv.textContent);
alert(window.clipboardData.getData("Text"));
}
}else{
event.preventDefault();
if (event.clipboardData) {
event.clipboardData.setData("text/plain", thisDiv.textContent);
alert(event.clipboardData.getData("text"));
}
}
}
function isIE(){
var input = window.document.createElement ("input");
//"!window.ActiveXObject" is evaluated to true in IE11
if (window.ActiveXObject === undefined) return null;
if (!window.XMLHttpRequest) return 6;
if (!window.document.querySelector) return 7;
if (!window.document.addEventListener) return 8;
if (!window.atob) return 9;
//"!window.document.body.dataset" is faster but the body is null when the DOM is not
//ready. Anyway, an input tag needs to be created to check if IE is being
//emulated
if (!input.dataset) return 10;
return 11;
}
html
这里是有两种情况,一种是复制自身内容块的文字,一种是复制别的内容块的文字,不过用法基本一致
<div id="textDiv1" onclick="execClick();" oncopy="execCopy(event,'textDiv1');">这里是要复制的文字1</div>
<div id="textDiv2">这里是要复制的文字2</div>
<a onclick="execClick();" oncopy="execCopy(event,'textDiv2');">复制</a>