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

时间:2021-05-26

最近做了一个前端项目,其中有需求:通过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实现复制内容到粘贴板代码小编就给大家介绍到这里,希望对大家有所帮助!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章