<h1>1、直接传入字符串</h1> <button onclick="copy({value: '我有一只小毛驴,我从来都不骑!'})">复制</button> <h1>2、传入输入框DOM</h1> <button onclick="copy({input: document.getElementById('myInput')})">复制输入框的内容</button> <input id="myInput" value="这是一段文本内容,你可以编辑修改后再复制一下试试。" type="text" /> <button onclick="copy({input: document.getElementById('myTextarea')})">复制输入框的内容</button> <textarea id="myTextarea">这是一段文本内容,你可以编辑修改后再复制一下试试。</textarea> <script> /** * 复制内容到剪贴板 * @param {String} value 要复制的内容 * @param {Object} input 输入框的DOM节点。如果没有传入的话则新建一个Dom并在复制后销毁。如果传入则将复制该输入框内的文本,value参数失效。 * @example * copy({value: '我有一只小毛驴,我从来都不骑!'}) * copy({input: document.getElementById('myInput')}) */ function copy(options) { let value = options.value || '' let input = options.input || null if ((!value || typeof value !== 'string') && !input) { // 传参校验 alert('传参错误') return false } const isNewInput = !input if (!input) { input = document.createElement('textarea') // 直接构建input input.value = value // 设置内容 document.body.appendChild(input) // 添加临时实例 } input.select() // 选择实例内容 value = input.value const isbool = document.execCommand('Copy') // 执行复制 if (isbool) { alert('复制成功:' + value.substring(0, 20) + (value.length > 20 ? '...' : '')) } else { alert('复制失败') } if (isNewInput) document.body.removeChild(input) // 删除临时实例 } </script>
微信号:gaogaojie5
添加微信好友, 获取更多信息
复制微信号
添加微信好友, 获取更多信息
复制微信号
转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!