首页 > 编程 > JavaScript > 正文

JavaScript实现复制内容到粘贴板代码

2019-11-20 10:18:59
字体:
来源:转载
供稿:网友

最近做了一个前端项目,其中有需求:通过button直接把input或者textarea里的值复制到粘贴板里。下面小编把我实现思路及代码分享给大家,大家可以直接引入项目中。

具体代码如下所示:

function copyToClipboard(elem) {// create hidden text element, if it doesn't already existvar targetId = "_hiddenCopyText_";var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";var origSelectionStart, origSelectionEnd;if (isInput) {// can just use the original source element for the selection and copytarget = elem;origSelectionStart = elem.selectionStart;origSelectionEnd = elem.selectionEnd;} else {// must use a temporary form element for the selection and copytarget = document.getElementById(targetId);if (!target) {var target = document.createElement("textarea");target.style.position = "absolute";target.style.left = "-9999px";target.style.top = "0";target.id = targetId;document.body.appendChild(target);}target.textContent = elem.textContent;}// select the contentvar currentFocus = document.activeElement;target.focus();target.setSelectionRange(0, target.value.length);// copy the selectionvar succeed;try {succeed = document.execCommand("copy");} catch(e) {succeed = false;}// restore original focusif (currentFocus && typeof currentFocus.focus === "function") {currentFocus.focus();}if (isInput) {// restore prior selectionelem.setSelectionRange(origSelectionStart, origSelectionEnd);} else {// clear temporary contenttarget.textContent = "";}return succeed;}

我们可以这样直接调用这个方法:

copyToClipboard(document.getElementById("name"));

这样id为name的值进入了粘贴板了。

关于JavaScript实现复制内容到粘贴板代码小编就给大家介绍到这里,希望对大家有所帮助!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表