Moin zusammen,
ich würde gerne ein Text aus einem Input kopieren.
An sich funktioniert es, allerdings wenn ich den Input von type="hidden" mache oder ihn ein style="visibility:hidden;width:0px" gebe, dann geht es wieder nicht.
Mein aktueller HTML Code:
Mein Javascript dazu:
Frage also... Wie Kopiere ich etwas, was nicht zu sehen ist aus einem Input?
ich würde gerne ein Text aus einem Input kopieren.
An sich funktioniert es, allerdings wenn ich den Input von type="hidden" mache oder ihn ein style="visibility:hidden;width:0px" gebe, dann geht es wieder nicht.
Mein aktueller HTML Code:
HTML-Code:
<input type="text" id="copyTarget" value="https://link/xyz?id=<?php echo $link; ?>" style="visibility:hidden;width:0px"><button id="copyButton">Kopieren</button>
Code:
document.getElementById("copyButton").addEventListener("click", function() { copyToClipboard(document.getElementById("copyTarget")); }); function copyToClipboard(elem) { // create hidden text element, if it doesn't already exist var 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 copy target = elem; origSelectionStart = elem.selectionStart; origSelectionEnd = elem.selectionEnd; } else { // must use a temporary form element for the selection and copy target = 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 content var currentFocus = document.activeElement; target.focus(); target.setSelectionRange(0, target.value.length); // copy the selection var succeed; try { succeed = document.execCommand("copy"); } catch(e) { succeed = false; } // restore original focus if (currentFocus && typeof currentFocus.focus === "function") { currentFocus.focus(); } if (isInput) { // restore prior selection elem.setSelectionRange(origSelectionStart, origSelectionEnd); } else { // clear temporary content target.textContent = ""; } return succeed; }
Kommentar