解决了什么问题
复制文本内容到剪贴板,并消息提示
使用示例
import copy from 'copy-to-clipboard';
copy('Text');
// Copy with options
copy('Text', {
debug: true,
message: 'Press #{key} to copy',
});
提供了哪些功能/方法/函数等?
- 提供了一个对外函数copy,可以通过它来实现文本的复制;
关注列表
复制功能
JS的复制命令 document.execCommand('copy'): 将选中的内容复制到剪贴板中
思路分析
- 传入选中内容text;
copy(text, options)
- 新建span元素, 赋值为传入的选中文本text;
mark = document.createElement("span");
mark.textContent = text;
- 将span添加到文档中
document.body.appendChild(mark);
- 监听文本复制过程
var successful = document.execCommand("copy");
- document.execCommand('copy')复制内容
mark.addEventListener("copy", function(e) {
e.stopPropagation();
if (options.format) {
e.preventDefault();
if (typeof e.clipboardData === "undefined") { // IE 11
debug && console.warn("unable to use e.clipboardData");
debug && console.warn("trying IE specific stuff");
window.clipboardData.clearData();
var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]
window.clipboardData.setData(format, text);
} else { // all other browsers
e.clipboardData.clearData();
e.clipboardData.setData(options.format, text);
}
}
if (options.onCopy) {
e.preventDefault();
options.onCopy(e.clipboardData);
}
});
- 从文档中溢出DOM元素;
if (mark) {
document.body.removeChild(mark);
}
- copy函数返回 复制是否成功的结果
if (!successful) {
throw new Error("copy command was unsuccessful");
}
success = true;
...
return sucess;
React进阶
React实现文本复制
-
这个是以上面copy-to-clipboard为基础、应用到react
import copy from 'copy-to-clipboard';
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!