非https下js写文本到剪切板

时间:2024-11-07 15:51:05

 代码如下好用

 var dummy = document.createElement("textarea");  // 创建一个隐藏的文本区域元素
                document.body.appendChild(dummy);  // 将该元素添加到页面中
                dummy.value = e;  // 将要复制的文本赋值给该元素
                dummy.select();  // 选择该元素的内容
                document.execCommand("copy");  // 执行复制操作
                document.body.removeChild(dummy);  

背景是 这个项目需要用一个excel预览模板组件,这个组件模板是canvas的,ctrl+c内部是用navigator.clipboard复制的,本地 127.0.0.1 访问能用,192.168.x.x这种非本机的ip复制就不好使,

改组件复制事件源码 试了很多方法,其中包括将文本写入浏览器内存,再阻止ctrl+c默认事件,只复制模板内并粘贴到输入框可以。

最终第二天发现这个可行。因为不影响其他的粘贴并复制进来