我们在很多网站上都会看到系统会提供一个复制按钮,我们只要点击这个复制按钮,系统就会把文本复制到剪切板,这个功能是怎么实现的呢?其实我们只要使用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