Ich habe viele Lösungen zum Kopieren in die Zwischenablage gefunden, aber alle entweder mit Flash oder für Websites. Ich suche nach einer Methode, die automatisch in die Zwischenablage kopiert wird, ohne Flash und für die Benutzerseite, für Benutzerskripte und natürlich für den Cross-Browser.
javascript
jquery
clipboard
Schwarze Sonne
quelle
quelle
Antworten:
Ohne Flash ist dies in den meisten Browsern einfach nicht möglich. Die Zwischenablage des Benutzers ist eine sicherheitsrelevante Ressource, da sie beispielsweise Passwörter oder Kreditkartennummern enthalten kann. Daher erlauben Browser zu Recht keinen Javascript-Zugriff darauf (einige erlauben dies mit einer Warnung, die vom Benutzer bestätigt wurde, oder mit signiertem Javascript-Code, aber nichts davon ist browserübergreifend).
quelle
Ich hatte die Flash-Lösung ausprobiert und mochte sie auch nicht. Zu komplex und zu langsam. Ich habe einen Textbereich erstellt, die Daten in diesen eingefügt und das Verhalten des Browsers "STRG + C" verwendet.
Der jQuery-Javascript-Teil:
Der HTML-Teil:
<textarea id="textArea1"></textarea>
Fügen Sie nun in "PUT THE TEXT TO COPY HERE" ein, was Sie kopieren möchten. Kann eine Funktion sein. ' Bereich. Funktioniert gut für mich. Sie müssen nur eine STRG + C-Kombination erstellen. Der einzige Nachteil ist, dass auf Ihrer Website ein hässlicher Textbereich angezeigt wird. Wenn Sie style = "display: none" verwenden, funktioniert die Kopierlösung nicht.
quelle
e.metaKey
im Keydown-Vergleich hinzugefügt , aber aus irgendeinem Grund wird keine Kopieraktion ausgelöst. Siehe diese Geige: jsfiddle.net/gableroux/gta67/1clipboard.js wurde gerade veröffentlicht, um ohne Flash in die Zwischenablage kopiert zu werden
Sehen Sie es hier in Aktion> http://zenorocha.github.io/clipboard.js/#example-action
quelle
Es ist endlich da! (Solange Sie Safari oder IE8 nicht unterstützen ... -_-)
Sie können jetzt Zwischenablageaktionen ohne Flash ausführen. Hier ist die relevante Dokumentation:
https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand
https://developers.google.com/web/updates/2015/04/cut-and-copy-commands?hl=de
https://msdn.microsoft.com/en-us/library/hh801227%28v=vs.85%29.aspx#copy
quelle
Während Sie ungeduldig auf die Xbrowser-Unterstützung der Zwischenablage-API warten ...
Dies funktioniert wunderbar in Chrome, Firefox, Edge, IE
Der IE fordert den Benutzer nur einmal auf, auf die Zwischenablage zuzugreifen.
Safari (5.1 zum Zeitpunkt des Schreibens) nicht unterstützt
execCommand
fürcopy/cut
Alle Browser (außer Firefox, das nur den MIME-Typ verarbeiten kann
"plain/text"
, soweit ich ihn getestet habe) haben die Zwischenablage-API nicht implementiert . Dh versuchen, das Zwischenablage-Ereignis in Chrome mit zu lesenwirft: Nicht gefangen TypeError: Unzulässiger Konstruktor
Die beste Quelle für das unglaubliche Durcheinander zwischen Browsern und der Zwischenablage finden Sie hier (caniuse.com) (→ Folgen Sie den Kommentaren unter "Notizen" ).
MDN sagt, dass die grundlegende Unterstützung für alle Browser "(JA)" ist, was ungenau ist, da man erwarten würde, dass zumindest die API überhaupt funktioniert.
quelle
Sie können eine lokale Zwischenablage für die HTML-Seite verwenden. Auf diese Weise können Sie Inhalte INNERHALB der HTML-Seite kopieren / ausschneiden / einfügen, jedoch nicht von / zu Anwendungen von Drittanbietern oder zwischen zwei HTML-Seiten.
So können Sie eine benutzerdefinierte Funktion schreiben, um dies zu tun (getestet in Chrome und Firefox):
Hier ist der FIDDLE , die zeigt, wie Sie dies tun können.
Ich werde hier auch die Geige als Referenz einfügen.
HTML
JS
quelle
window
. Es ist keine tatsächliche Zwischenablage , die dem Betriebssystem und einer anderen Browser-Registerkarte zur Verfügung steht. Auch die Auswahl kann leicht mitselect()
und als einfach gemacht werdenwindow.getSelection()
document.execCommand('copy')
wird tun was du willst. Aber es gab keine direkt verwendbaren Beispiele in diesem Thread ohne Cruft, also hier ist es:quelle
Es führt kein Weg daran vorbei, man muss Flash verwenden. Es gibt ein JQuery-Plugin namens jquery.copy , das das browserübergreifende Kopieren und Einfügen mithilfe einer Flash-Datei (SWF) ermöglicht. Dies ähnelt der Funktionsweise des Syntax-Textmarkers in meinem Blog.
Sobald Sie auf die Datei jquery.copy.js verweisen, müssen Sie nur noch Folgendes ausführen, um Daten in die Zwischenablage zu verschieben:
Schön und einfach ;)
quelle