Ich habe kürzlich einen technischer Blogbeitrag zu genau diesem Problem (ich arbeite bei Lucidchart und wir haben vor kurzem unsere Zwischenablage überarbeitet).
Das Kopieren von einfachem Text in die Zwischenablage ist relativ einfach, vorausgesetzt, Sie versuchen, dies während eines Systemkopiervorgangs zu tun (Benutzer drückt Ctrl + C oder über das Menü des Browsers).
var isIe = (navigator.userAgent.toLowerCase().indexOf("msie") != -1 ||
navigator.userAgent.toLowerCase().indexOf("trident") != -1);
document.addEventListener('copy', function(e) {
var textToPutOnClipboard = "This is some text";
if (isIe) {
window.clipboardData.setData('Text', textToPutOnClipboard);
} else {
e.clipboardData.setData('text/plain', textToPutOnClipboard);
}
e.preventDefault();
});
Es ist viel schwieriger, Text in die Zwischenablage zu kopieren, wenn dies nicht während eines Systemkopiervorgangs geschieht. Es sieht so aus, als ob einige dieser anderen Antworten auf Möglichkeiten verweisen, dies über Flash zu tun, was die einzige browserübergreifende Möglichkeit ist, dies zu tun (soweit ich weiß).
Abgesehen davon gibt es einige Optionen auf Browser-Basis.
Am einfachsten ist dies im Internet Explorer, wo Sie über JavaScript jederzeit auf das clipboardData-Objekt zugreifen können:
window.clipboardData
(Wenn Sie versuchen, dies außerhalb eines Ausschneide-, Kopier- oder Einfügevorgangs des Systems zu tun, wird Internet Explorer den Benutzer jedoch auffordern, der Webanwendung die Berechtigung für die Zwischenablage zu erteilen).
In Chrome können Sie eine Chrome-Erweiterung erstellen, mit der Sie Berechtigungen für die Zwischenablage (dies tun wir für Lucidchart). Für Benutzer, die Ihre Erweiterung installiert haben, müssen Sie dann nur noch das Systemereignis selbst auslösen:
document.execCommand('copy');
Es sieht so aus, als hätte Firefox einige Optionen die es den Benutzern ermöglichen, bestimmten Seiten Zugriff auf die Zwischenablage zu gewähren, aber ich habe keine davon persönlich ausprobiert.
0 Stimmen
Nur aus Neugier: Was wollen Sie in die Zwischenablage kopieren, was der Benutzer nicht selbst tun kann?
311 Stimmen
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 zu machen.
8 Stimmen
Dieser lange Blogeintrag enthält eine Vielzahl von Möglichkeiten, dies zu tun: Zugriff auf die System-Zwischenablage mit JavaScript - ein Heiliger Gral?
2 Stimmen
Es gibt Browser undefinierte Ausnahme in IE als auch in FF
4 Stimmen
Wenn wir Text in die Zwischenablage des Benutzers eingeben können, können wir seine Zwischenablage zerstören.
0 Stimmen
Dies wird immer noch nicht perfekt unterstützt. Sie können die Unterstützung sehen unter Kann ich die Zwischenablage-API verwenden? ? die Details zur Unterstützung der W3C-Dokument über Zwischenablage-APIs .
0 Stimmen
@Mike wird es wegen der Sicherheitsaspekte wahrscheinlich nie geben.
0 Stimmen
Ich habe eine einfach zu verwendende Angular-Bibliothek erstellt ngxyz-c2c wenn ihr es wollt.
1 Stimmen
Ich persönlich bevorzuge Drittanbieter wie clipboardjs. clipboardjs: clipboardjs.com vue-Clipboards: zhuowenli.github.io/vue-clipboards v-clipboard: vuejsexamples.com/a-clipboard-bibliothek-mit-vue-js
0 Stimmen
@FrankFang wir machen es nicht beim Laden der Seite, sondern wenn sie auf "COPY" klicken