html+js实现点击按钮复制文本内容到剪切板上

首先需要定义一个input框,如果你想实现的效果是,用户输入后,点击按钮,复制文本框的内容,那这种做法应该是很适合的。

<input type="text" value="" id="wechat">

在js中:

$(".copy-btn").click(function() { 
    var e = document.getElementById("wechat"); 
    e.select(); // 选择对象 
    document.execCommand("Copy"); // 执行浏览器复制命令 
})

 

首先获取input框对象,然后通过select()选择对象,会选中用户输入的值,即input中的value。

然后通过document.execCommand("Copy");执行复制命令,此时可以复制到用户输入的值。

 

但是我们要实现的效果是,点击按钮直接复制文本到粘贴板上

因此需要多做两步,1.将值放在文本框中(value);2.将文本框隐藏(opacity);

注意:1)隐藏的时候如果使用display:none或者type=hidden都不可以,获取不到value。

2)在小程序中点击复制之后,复制成功后会调用起键盘,因此需要在input中加上readonly!

<input type="text" value="wechat111" id="wechat" style="opacity: 0" readonly>

这样就可以啦。

PC端和安卓都可以,不过ios好像不可以,复制不到东西。

 

主要代码如下:

<input type="text" value="wechat111" id="wechat" style="opacity: 0" readonly>

$(".copy-btn").click(function() { 
    var e = document.getElementById("wechat"); 
    e.select(); // 选择对象 
    document.execCommand("Copy"); // 执行浏览器复制命令 
    alert("复制成功");    
})

 

 

——————————更新——————————

发现一个棒棒的插件,官网:http://www.clipboardjs.cn/

使用它可以在移动端webview上完美解决这个问题

首先,引入js文件:

<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>

然后,主要代码如下:

<button id="copy-wechat-btn" data-clipboard-text="wx-number">复制微信号</button>

var btns = document.getElementById('copy-wechat-btn');
var clipboard = new ClipboardJS(btns);
clipboard.on('success', function(e) {
    //成功后执行这里
});
clipboard.on('error', function(e) {
   console.log(e);
});

### AutoJS 和原生 JavaScript 实现点击按钮复制内容到剪贴板 #### 使用 AutoJS 实现功能 在 AutoJS 中,可以通过 `clipboard` 对象来访问设备的剪贴板功能。以下是具体实现方式: 通过使用悬浮窗中的 [探测] 功能可以快速找到目标控件的相关属性(如 id 或 text),从而简化脚本开发过程[^1]。 ```javascript // 定义要复制的内容 let contentToCopy = "这是要复制到剪贴板的内容"; // 查找指定按钮并模拟点击事件 if (id("button_id").exists()) { // 替换为实际按钮的ID id("button_id").click(); // 将内容写入剪贴板 clipboard.set(contentToCopy); toast("已成功复制:" + contentToCopy); // 提示用户操作完成 } else { toast("未找到指定按钮"); } ``` 上述代码片段展示了如何利用 AutoJS 的 API 来检测特定 ID 的按钮是否存在,并执行点击动作以及将自定义字符串存储至剪贴板中。 --- #### 使用原生 JavaScript 实现功能 对于网页端环境下的原生 JavaScript,则需依赖于现代浏览器支持的 Clipboard API 。需要注意的是 `<script>` 标签如果用来加载外部资源则不能再包含内联代码;反之亦然[^2]。 下面是一个完整的例子展示当某个 HTML 按钮被按下之后会触发一段逻辑把预设好的文字拷贝进去用户的系统粘贴缓冲区里头去: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <button id="copyButton">Click to Copy Text</button> <script type="text/javascript"> document.getElementById('copyButton').addEventListener('click', function() { const copyText = '这里是需要复制的文字'; navigator.clipboard.writeText(copyText).then(() => { alert(`Copied: ${copyText}`); }).catch(err => { console.error('Failed to copy:', err); }); }); </script> </body> </html> ``` 此段程序首先监听了一个名为 “copyButton” 的 DOM 元素上的 click 事件,一旦该事件发生就调用了 Navigator 接口所提供的方法 writeText 把给定参数传递过去进而实现了自动化处理流程. --- ### 注意事项 - **权限问题**: 在某些情况下可能需要请求额外权限才能正常使用这些特性, 特别是在 Android 应用或者跨域场景下. - **兼容性考量**: 虽说大部分主流桌面版与移动端浏览器都开始逐步采纳新的标准APIs , 不过还是建议开发者们仔细查阅官方文档确认版本间的差异.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值