使用 JS 复制内容到剪贴板主要有两种方式:
- 使用 clipboard.js 插件
- 使用 document.execCommand() 原生方法
1.使用 clipboard.js 插件
该插件使用比较简单,兼容性较好。具体使用方法见:github clipboard.js
兼容性:
2.使用 document.execCommand() 原生方法
直接看代码:
/**
* 复制内容
* @param {String} value 需要复制的内容
* @param {String} type 元素类型 input, textarea
*/
export function copyContent(value, type = 'input') {
const input = document.createElement(type);
input.setAttribute('readonly', 'readonly'); // 设置为只读, 防止在 ios 下拉起键盘
// input.setAttribute('value', value); // textarea 不能用此方式赋值, 否则无法复制内容
input.value = value;
document.body.appendChild(input);
input.setSelectionRange(0, 9999); // 防止 ios 下没有全选内容而无法复制
input.select();
document.execCommand('copy');
document.body.removeChild(input);
}
这里主要解决了 ios 下的 bug,以及使用 textarea 来解决换行内容的复制。
兼容性:
更多推荐