项目js java 实现自动复制粘贴 亲测有效
项目中有需求 — 点击按钮时触发事件 —把内容自动复制到剪切板 — 粘贴给好友
查了很多资料 下面两种方法 亲测有效 :
第一种:前台 纯js代码实现
(可以实现前后端分离 服务器端剪切板)
var aux = document.createElement("input"); aux.setAttribute("value", 这里写想要复制的值); document.body.appendChild(aux); aux.select(); document.execCommand("copy"); document.body.removeChild(aux); alert("复制成功!");
第二种:后台 用Java Clipboard 实现
(注意:只能针对本地剪切板)
package common.util; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; public class ClipboardUtil { public static void main(String[] args) throws InterruptedException { //测试 } /** * 把文本设置到剪贴板(复制) */ public static void SaveClipboardString(String text) { StringSelection stsel = new StringSelection(text); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stsel, stsel); } /** * 把文本设置到剪贴板(复制) */ public static void setClipboardString(String text) { // 获取系统剪贴板 Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); // 封装文本内容 Transferable trans = new StringSelection(text); // 把文本内容设置到系统剪贴板 clipboard.setContents(trans, null); } /** * 从剪贴板中获取文本(粘贴) */ public static String getClipboardString() { // 获取系统剪贴板 Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); // 获取剪贴板中的内容 Transferable trans = clipboard.getContents(null); if (trans != null) { // 判断剪贴板中的内容是否支持文本 if (trans.isDataFlavorSupported(DataFlavor.stringFlavor)) { try { // 获取剪贴板中的文本内容 String text = (String) trans.getTransferData(DataFlavor.stringFlavor); return text; } catch (Exception e) { e.printStackTrace(); } } } return null; } }
之后去前台调用 SaveClipboardString 方法即可!