Wie fügen Sie zusätzliche info zu web text kopiert
Einige Webseiten verwenden ein JavaScript service von Tynt , fügt text kopiert Inhalte.
Wenn Sie das kopieren von text von einer Website mit diesem und fügen Sie einen link zu dem ursprünglichen Inhalt am Ende des Textes.
Tynt auch tracks, wie es geschieht. Es ist ein netter trick, gut gemacht.
Eigenes Skript, dies zu tun, ist beeindruckend - eher als versuchen zu manipulieren die Zwischenablage (nur ältere IE-Versionen können Sie tun, indem Sie Standard-und die sollte immer ausgeschaltet sein) Sie manipulieren die eigentliche Auswahl.
Also, wenn Sie einen Textblock auswählen, die extra-Inhalte Hinzugefügt, als eine versteckte <div>
in Ihre Auswahl einbeziehen. Wenn Sie fügen zusätzliche Stil wird ignoriert, und der extra-link angezeigt.
Dies ist eigentlich ziemlich einfach zu tun mit einfachen Blöcken von text, sondern ein Alptraum, wenn man bedenkt, alle Auswahlen möglich über komplexe HTML in verschiedenen Browsern.
Ich bin der Entwicklung einer web-Anwendung - ich glaube nicht, dass jemand in der Lage sein zu verfolgen, den Inhalt kopiert, und ich möchte die zusätzliche Informationen enthalten, etwas, das kontextuelle, anstatt nur einen link. Tynt ist der service ist nicht wirklich angebracht in diesem Fall.
Kennt jemand ein open-source-JavaScript-Bibliothek (vielleicht ein jQuery-plug-in oder ähnliches, die eine ähnliche Funktionalität bietet, aber nicht setzen die internen Daten der Anwendung?
Siehe auch stackoverflow.com/questions/1203082/...
Bitte tun Sie das nicht. Bitte, bitte, BITTE einfach nicht.
warum nicht? Ich bekommen, wie nervig das ist auf spam-sites, aber dieser ist für eine Anwendung, die verwendet werden können, für Zitate und wobei die internen Daten ist sensibler. Das ist, warum ich nicht verwenden wollen Tynt.
Alternative: github.com/tovic/sticky-attribution
InformationsquelleAutor Keith | 2010-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt zwei Möglichkeiten zum hinzufügen von zusätzlichen Informationen zum kopierten web-text.
1. Manipulation der Auswahl
Die Idee ist zu schauen, für die
copy event
, dann fügen Sie ein hidden container mit unseren extra-info zu dendom
, und erweitern Sie die Auswahl.Diese Methode ist adaptiert von dieser Artikel von c.bavota. Überprüfen Sie auch jitbit's version für komplexere Fall.
2. Die Manipulation der Zwischenablage
Die Idee ist, zu beobachten
copy event
und Bearbeiten Sie direkt die Daten in der Zwischenablage. Dies ist möglich mit derclipboardData
Eigenschaft. Beachten Sie, dass diese Eigenschaft ist verfügbar in allen gängigen Browsern inread-only
; diesetData
Methode ist nur auf den IE.Sollte es einen workaround für "<pre>" - tags, eine weichere version dieses Skript ist hier
Beachten Sie, dass "die Manipulation der Zwischenablage" funktioniert prefectly in FireFox, Chrome und Safari, wenn Sie ändern
window.clipboardData
zuevent.clipboardData
. IE (v11) nicht unterstützenevent.clipboardData
jsfiddle.net/m56af0je/8Wenn Sie mit Google Analytics, etc, Sie können sogar Feuer aus einer Veranstaltung zu protokollieren, welche Benutzer das kopieren von Ihrer Webseite. Interessant
Die erste option ignoriert die neue-Zeile-Zeichen von den kopierten text.
InformationsquelleAutor CronosS
Dies ist eine vanilla-javascript-Lösung, die eine modifizierte Lösung vor, sondern unterstützt mehr Browsern (cross-browser-Methode)
InformationsquelleAutor GiorgosK
Die kürzeste version für jQuery, die ich getestet und funktioniert:
Ich glaube, dass dies einfach fügt Funktionalität, kurz bevor der Kopiervorgang stattfindet (das geschieht durch das system, wenn der Benutzer initiiert).
InformationsquelleAutor user2276146
Hier ist ein plugin in jquery zu tun
https://github.com/niklasvh/jquery.plugin.clipboard
Aus dem Projekt readme
"Das Skript ändert den Inhalt einer Selektion vor, um eine Kopie event wird aufgerufen, wodurch die kopierte Auswahl unterscheiden von dem, was der Benutzer ausgewählt hat.
Diese können Sie append/prepend-Inhalt zur Auswahl, wie z.B. copyright-Informationen oder andere Inhalte.
Veröffentlicht unter der MIT-Lizenz"
InformationsquelleAutor Saikat Guha
Verbesserung auf die Antwort, wiederherstellen Auswahl nach den änderungen, um zu verhindern, dass zufällige Auswahl nach dem kopieren.
Es sollte
var range = selection.getRangeAt(0);
Wiederherstellen von text-Auswahl ist eine gute Idee, sonst bricht es Standard-browser-Verhalten.
InformationsquelleAutor digitalPBK
Verbesserung für 2018
InformationsquelleAutor tronic
Auch ein wenig kürzer Lösung:
InformationsquelleAutor almo
Es ist eine Zusammenstellung von 2 Antworten oben + Kompatibilität mit Microsoft Rand.
Außerdem habe ich eine Wiederherstellung des ursprünglichen Auswahl am Ende, wie es zu erwarten ist standardmäßig in jedem browser.
InformationsquelleAutor Sergey