闽公网安备 35020302035485号
我们在很多网站上都会看到系统会提供一个复制按钮,我们只要点击这个复制按钮,系统就会把文本复制到剪切板,这个功能是怎么实现的呢?其实我们只要使用js里的clipboardData对象,就能实现复制文本的功能,具体来看一下下面这个例子吧。
实例:
const copyText = (text) => {
// 堆代码 duidaima.com
// 方法1:尝试使用clipboardData对象将文本复制到剪贴板中
const clipboardData = window.clipboardData;
if (clipboardData) { // 如果clipboardData对象存在,说明浏览器支持此方法
clipboardData.clearData(); // 清除剪贴板中的旧数据
clipboardData.setData('Text', text); // 将text数据复制到剪贴板中
return true; // 返回复制成功
}
// 方法2:使用document.execCommand方法将文本复制到剪贴板中
// 注意,该方法已经被弃用,但仍然有些浏览器支持,使用时要注意兼容性
else if (document.execCommand) {
// 创建一个textarea元素,并将需要复制的文本赋值给它
const el = document.createElement('textarea');
el.value = text;
el.setAttribute('readonly', ''); // 设置为只读模式,防止用户误操作
el.style.position = 'absolute';
el.style.left = '-9999px'; // 将元素的left设置为-9999px,相当于将其放到屏幕外面
document.body.appendChild(el); // 将该元素添加到body中
el.select(); // 选中该元素中的文本
// 将该元素中的文本复制到剪贴板中
document.execCommand('copy');
// 删除该元素
document.body.removeChild(el);
return true; // 返回复制成功
}
return false; // 复制失败
}
copyText('hello!') // 将 'hello!' 文本复制到剪贴板中,返回 true