In Internet Explorer kann ich mit dem Objekt clipboardData auf die Zwischenablage zugreifen. Wie kann ich das in FireFox, Safari und / oder Chrome tun?
javascript
dom
clipboard
GvS
quelle
quelle
copy
, developer.chrome.com/devtools/docs/commandline-apiAntworten:
Es gibt jetzt eine Möglichkeit, dies in den meisten modernen Browsern mit einfach zu tun
Dadurch wird der aktuell ausgewählte Text kopiert. Sie können eine textArea oder ein Eingabefeld mit auswählen
Um Text unsichtbar zu kopieren, können Sie schnell eine textArea generieren, den Text im Feld ändern, ihn auswählen, kopieren und dann die textArea löschen. In den meisten Fällen blinkt diese textArea nicht einmal auf dem Bildschirm.
Aus Sicherheitsgründen können Sie in Browsern nur kopieren, wenn ein Benutzer eine Aktion ausführt (dh auf eine Schaltfläche klickt). Eine Möglichkeit, dies zu tun, besteht darin, einer HTML-Schaltfläche ein onClick-Ereignis hinzuzufügen, das eine Methode aufruft, die den Text kopiert.
Ein vollständiges Beispiel:
quelle
Aus Sicherheitsgründen können Sie in Firefox keinen Text in die Zwischenablage einfügen. Es gibt jedoch eine Problemumgehung mit Flash.
Der einzige Nachteil ist, dass hierfür Flash aktiviert sein muss.
Quelle ist derzeit tot: http://bravo9.com/journal/copying-text-into-the-clipboard-with-javascript-in-firefox-safari-ie-opera-292559a2-cc6c-4ebf-9724-d23e8bc5ad8a/ ( und so ist es Google Cache )
quelle
Online-Tabellenkalkulationen verknüpfen Strg + C-, Strg + V-Ereignisse und übertragen den Fokus auf ein verstecktes TextArea-Steuerelement. Setzen Sie den Inhalt entweder auf den gewünschten neuen Inhalt der Zwischenablage zum Kopieren oder lesen Sie den Inhalt, nachdem das Ereignis zum Einfügen beendet wurde.
Siehe auch Ist es möglich, die Zwischenablage in Firefox, Safari und Chrome mit Javascript zu lesen?
quelle
Es ist Sommer 2015, und mit so viel Aufruhr um Flash dachte ich, ich würde dieser Frage eine neue Antwort hinzufügen, die ihre Verwendung insgesamt vermeidet.
clipboard.js ist ein nettes Dienstprogramm, mit dem Sie Text- oder HTML-Daten in die Zwischenablage kopieren können. Es ist sehr einfach zu bedienen, fügen Sie einfach die .js hinzu und verwenden Sie Folgendes:
clipboard.js ist auch auf GitHub
quelle
2017 können Sie dies tun (sagen Sie dies, weil dieser Thread fast 9 Jahre alt ist!)
Und jetzt zum Kopieren
copyStringToClipboard('Hello World')
Wenn Sie die
setData
Zeile bemerkt haben und sich gefragt haben, ob Sie verschiedene Datentypen festlegen können, lautet die Antwort Ja.quelle
.select()
ein Eingabefeld ausführen , bevor ich dies aufrief.In Firefox können Sie zwar Daten in der Zwischenablage speichern, diese sind jedoch aus Sicherheitsgründen standardmäßig deaktiviert. Informationen zum Aktivieren finden Sie unter "Gewähren von JavaScript-Zugriff auf die Zwischenablage" in der Mozilla Firefox-Wissensdatenbank.
Die von amdfan angebotene Lösung ist die beste, wenn Sie viele Benutzer haben und die Konfiguration ihres Browsers keine Option ist. Sie können jedoch testen, ob die Zwischenablage verfügbar ist, und einen Link zum Ändern der Einstellungen bereitstellen, wenn die Benutzer technisch versiert sind. Der JavaScript-Editor TinyMCE folgt diesem Ansatz.
quelle
Die Funktion copyIntoClipboard () funktioniert für Flash 9, scheint jedoch durch die Veröffentlichung von Flash Player 10 beschädigt zu werden. Hier ist eine Lösung, die mit dem neuen Flash Player funktioniert:
http://bowser.macminicolo.net/~jhuckaby/zeroclipboard/
Es ist eine komplexe Lösung, aber sie funktioniert.
quelle
Ich muss sagen, dass keine dieser Lösungen wirklich funktioniert. Ich habe die Zwischenablage-Lösung anhand der akzeptierten Antwort ausprobiert und sie funktioniert nicht mit Flash Player 10. Ich habe auch ZeroClipboard ausprobiert und war eine Weile sehr zufrieden damit.
Ich verwende es derzeit auf meiner eigenen Website ( http://www.blogtrog.com ), aber ich habe seltsame Fehler damit bemerkt. ZeroClipboard funktioniert so, dass ein unsichtbares Flash-Objekt über einem Element auf Ihrer Seite platziert wird. Ich habe festgestellt, dass das ZeroClipboard-Flash-Objekt aus dem Gleichgewicht gerät und das Objekt nicht mehr abdeckt, wenn sich mein Element bewegt (z. B. wenn der Benutzer die Größe des Fensters ändert und die Dinge richtig ausgerichtet sind). Ich vermute, es sitzt wahrscheinlich immer noch dort, wo es ursprünglich war. Sie haben Code, der das stoppen oder auf das Element übertragen soll, aber es scheint nicht gut zu funktionieren.
Also ... in der nächsten Version von BlogTrog werde ich wohl mit allen anderen Code-Textmarkern, die ich in freier Wildbahn gesehen habe, nachziehen und meine Schaltfläche In Zwischenablage kopieren entfernen. :-(
(Ich habe festgestellt, dass die Kopie von dp.syntaxhiglighter in die Zwischenablage jetzt ebenfalls fehlerhaft ist.)
quelle
viel zu alte Frage, aber ich habe diese Antwort nirgendwo gesehen ...
Überprüfen Sie diesen Link:
http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard
Wie alle sagten, ist aus Sicherheitsgründen standardmäßig deaktiviert. Der obige Link zeigt die Anweisungen zum Aktivieren (durch Bearbeiten von about: config in Firefox oder der Datei user.js).
Glücklicherweise gibt es ein Plugin namens "AllowClipboardHelper", das die Sache mit nur wenigen Klicks einfacher macht. Sie müssen die Besucher Ihrer Website jedoch weiterhin anweisen, wie der Zugriff in Firefox aktiviert werden kann.
quelle
Verwenden Sie modern document.execCommand ("copy") und jQuery. Siehe diese Antwort zum Stapelüberlauf
So rufen Sie an:
quelle
Ich habe Githubs Clippy für meine Bedürfnisse verwendet, einfache Flash-basierte Schaltfläche. Funktioniert einwandfrei, wenn man kein Styling benötigt und gerne einfügt, was vorher auf der Serverseite eingefügt werden soll.
quelle
Eine leichte Verbesserung gegenüber der Flash-Lösung besteht darin, Flash 10 mit swfobject zu erkennen:
http://code.google.com/p/swfobject/
Wenn es dann als Flash 10 angezeigt wird, versuchen Sie, ein Shockwave-Objekt mit Javascript zu laden. Shockwave kann (in allen Versionen) auch mit dem Befehl copyToClipboard () im Jargon in die Zwischenablage lesen / schreiben.
quelle
http://www.rodsdot.com/ee/cross_browser_clipboard_copy_with_pop_over_message.asp funktioniert mit Flash 10 und allen Flash-fähigen Browsern.
Außerdem wurde ZeroClipboard aktualisiert, um den Fehler beim Scrollen von Seiten zu vermeiden, der dazu führt, dass sich der Flash-Film nicht mehr an der richtigen Stelle befindet.
Da diese Methode "erfordert", dass der Benutzer auf eine Schaltfläche klickt, um sie zu kopieren, ist dies für den Benutzer eine Annehmlichkeit und es tritt nichts Schändliches auf.
quelle
Versuchen Sie, eine globale Speichervariable zu erstellen, in der die Auswahl gespeichert ist. Dann kann die andere Funktion auf die Variable zugreifen und beispielsweise einfügen.
quelle
Wenn Sie Flash unterstützen, können Sie https://everyplay.com/assets/clipboard.swf verwenden und den Flashvars-Text verwenden, um den Text festzulegen
https://everyplay.com/assets/clipboard.swf?text=It%20Works
Das ist die, die ich zum Kopieren verwende und die Sie als Extra festlegen können, wenn diese Optionen, die Sie verwenden können, nicht unterstützt werden:
Für Internet Explorer: window.clipboardData.setData (DataFormat, Text) und window.clipboardData.getData (DataFormat)
Sie können den Text und die URL des DataFormat verwenden, um Daten und SetData abzurufen.
Und um Daten zu löschen:
Sie können die Datei, das HTML, das Bild, den Text und die URL des DataFormat verwenden. PS: Sie müssen window.clipboardData.clearData (DataFormat) verwenden.
Und für andere, die window.clipboardData- und swf-Flash-Dateien nicht unterstützen, können Sie auch die Strg-Taste + c auf Ihrer Tastatur für Windows und für Mac mit dem Befehl + c verwenden
quelle
Aus dem Addon-Code:
Falls jemand anders nach Chrome-Code gesucht hat, können Sie die hier beschriebene nsIClipboardHelper-Oberfläche verwenden: https://developer.mozilla.org/en-US/docs/Using_the_Clipboard
quelle
Verwenden Sie
document.execCommand('copy')
. Unterstützt in den neuesten Versionen vonChrome
,Firefox
,Edge
undSafari
.quelle
Die API für die Zwischenablage ersetzt
document.execCommand
. Safari arbeitet noch an der Unterstützung, daher sollten Sie einen Fallback bereitstellen, bis die Spezifikationen festgelegt sind und Safari die Implementierung abgeschlossen hat.Aus Sicherheitsgründen
Permissions
kann eine Zwischenablage erforderlich sein, um aus der Zwischenablage lesen und schreiben zu können. Wenn das Snippet auf SO nicht funktioniert, versuchen Sie es auflocalhost
einer anderen vertrauenswürdigen Domain.quelle
Aufbauend auf der hervorragenden Antwort von @David aus Studio.201 funktioniert dies in Safari, FF und Chrome. Es stellt auch sicher, dass kein Blinken auftreten kann,
textarea
indem es außerhalb des Bildschirms platziert wird.quelle