pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:2826
发帖:230 篇
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
发帖:230 篇
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
[ 第 1 楼 ]
420
回复
一:将内容复制到剪贴板原理是模拟鼠标点击【input】,执行复制【input】中的内容,这种方式,兼容性极差。在开发APP嵌套网页时就发现APP端可能会禁用此类行为,导致复制失败。个人测试过发现IOS端基本不行,完整代码如下:input框也可以用textarea来代替
//参数为文本内容function copy_content(text){ //创建一个输入框 var transfer = document.createElement('input'); // 防止页面出现闪动的现象将输入框高度设置为0 transfer.style.height = 0; //将输入框插入到页面的一个div元素中 document.body.appendChild(transfer) //给输入框复制 transfer.value = text; //让输入框获得焦点 transfer.focus(); transfer.contentEditable = true; //设置输入框为只读状态 transfer.readOnly = false; //模拟点击复制 if(transfer.setSelectionRange) { transfer.setSelectionRange(0,transfer.value.length); var range = document.createRange(); range.selectNodeContents(transfer); }else{ transfer.select(); } document.execCommand('copy',false,null); //让输入框失去焦点 transfer.blur(); //删除输入框元素 transfer.remove() console.log('复制成功')}