
Santiago Corredoira
Was ist der beste Weg, um Text in die Zwischenablage zu kopieren (Multi-Browser)?
Ich habe versucht:
function copyToClipboard(text) {
if (window.clipboardData) { // Internet Explorer
window.clipboardData.setData("Text", text);
} else {
unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
clipboardHelper.copyString(text);
}
}
Aber im Internet Explorer gibt es einen Syntaxfehler. Bei Firefox heißt es unsafeWindow ist nicht definiert.
Ein netter Trick ohne Verwendung Blinken: Wie greift Trello auf die Zwischenablage des Benutzers zu?

Jarek Milewski
Das automatische Kopieren in die Zwischenablage kann gefährlich sein und wird daher von den meisten Browsern (außer Internet Explorer) sehr erschwert. Ich persönlich verwende den folgenden einfachen Trick:
function copyToClipboard(text) {
window.prompt("Copy to clipboard: Ctrl+C, Enter", text);
}
Dem Benutzer wird die Eingabeaufforderungsbox präsentiert, in der der zu kopierende Text bereits ausgewählt ist. Jetzt reicht es zu drücken Strg + C und Eingeben (um die Kiste zu schließen) – und voila!
Jetzt ist der Kopiervorgang aus der Zwischenablage sicher, weil der Benutzer es manuell macht (aber auf ziemlich einfache Weise). Natürlich funktioniert es in allen Browsern.
<button id="demo" onclick="copyToClipboard(document.getElementById('demo').innerHTML)">This is what I want to copy</button>
<script>
function copyToClipboard(text) {
window.prompt("Copy to clipboard: Ctrl+C, Enter", text);
}
</script>

Nikksan
Hier ist meine Meinung dazu…
function copy(text) {
var input = document.createElement('input');
input.setAttribute('value', text);
document.body.appendChild(input);
input.select();
var result = document.execCommand('copy');
document.body.removeChild(input);
return result;
}
@korayem: Beachten Sie, dass HTML verwendet wird input
Feld respektiert keine Zeilenumbrüche \n
und wird jeden Text in eine einzelne Zeile glätten.
Wie von @nikksan in den Kommentaren erwähnt, using textarea
wird das Problem wie folgt beheben:
function copy(text) {
var input = document.createElement('textarea');
input.innerHTML = text;
document.body.appendChild(input);
input.select();
var result = document.execCommand('copy');
document.body.removeChild(input);
return result;
}

Deponie-Baby
Das Lesen und Ändern der Zwischenablage von einer Webseite wirft Sicherheits- und Datenschutzbedenken auf. Im Internet Explorer ist dies jedoch möglich. ich habe das gefunden Beispielschnipsel:
<script type="text/javascript">
function select_all(obj) {
var text_val=eval(obj);
text_val.focus();
text_val.select();
r = text_val.createTextRange();
if (!r.execCommand) return; // feature detection
r.execCommand('copy');
}
</script>
<input value="http://www.sajithmr.com"
onclick="select_all(this)" name="url" type="text" />

Peter Mortensen
Wenn Sie eine wirklich einfache Lösung wollen (die Integration dauert weniger als 5 Minuten) und von Anfang an gut aussieht, dann Clippy ist eine schöne Alternative zu einigen der komplexeren Lösungen.
Es wurde von einem Mitbegründer von GitHub geschrieben. Beispiel-Flash-Einbettungscode unten:
<object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
width="110"
height="14"
id="clippy">
<param name="movie" value="/flash/clippy.swf"/>
<param name="allowScriptAccess" value="always"/>
<param name="quality" value="high"/>
<param name="scale" value="noscale"/>
<param NAME="FlashVars" value="text=#{text}"/>
<param name="bgcolor" value="#{bgcolor}"/>
<embed
src="/flash/clippy.swf"
width="110"
height="14"
name="clippy"
quality="high"
allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"
FlashVars="text=#{text}"
bgcolor="#{bgcolor}"/>
</object>
Denken Sie daran, zu ersetzen #{text}
mit dem Text, den Sie kopieren müssen, und #{bgcolor}
mit einer Farbe.
9859100cookie-checkWie kopiere ich in JavaScript in die Zwischenablage?yes
Nur neugierig, was möchten Sie in die Zwischenablage kopieren, was der Benutzer nicht selbst tun kann?
– Schnauze
30. Dezember 2008 um 16:52 Uhr
Nichts Besonderes. Sie können es selbst tun, aber ich möchte auch die Möglichkeit bieten, auf eine Schaltfläche zu klicken, ohne sich Gedanken über die Auswahl des richtigen Textabschnitts machen zu müssen.
– Santiago Corredoira
31. Dezember 2008 um 0:03 Uhr
Dieser lange Blogbeitrag enthält viele Möglichkeiten, dies zu tun: Zugriff auf die System-Zwischenablage mit JavaScript – ein heiliger Gral?
– Aaron Digulla
21. April 2011 um 8:26 Uhr
Es gibt eine undefinierte Browser-Ausnahme sowohl in IE als auch in FF
– Jagadeisch
22. Februar 2013 um 7:43 Uhr
Wenn wir Text in die Zwischenablage des Benutzers einfügen können, können wir seine Zwischenablage ruinieren.
– Frank Fang
11. Juni 2014 um 12:15 Uhr