2015-02-04 5 views
6

Ziemlich genau die Frage. Ich habe einen Kunden, der ein negatives Design mit fast weißem Text auf der gesamten Webseite anfordert, aber Tester sagen, dass es lästig ist, von der Website zu kopieren und einzufügen, da alles beim Kopieren in Word oder ähnliches als weißer Text erscheint.Gibt es eine Möglichkeit, Benutzern zu ermöglichen, Text von einer Website zu kopieren, und den Text unformatiert?

Gibt es eine Möglichkeit, die Formatierung entweder präemptiv zu entfernen, wenn ein Benutzer versucht, Text von der Website zu kopieren? Oder gibt es eine Möglichkeit zu entführen, was tatsächlich in die Zwischenablage gelangt?

+0

Ich denke, es ist möglich mit ein bisschen jquery oder vanilla.js: D – KARC

+0

Welchen Weg denkst du, ich sollte untersuchen? Hijacking Zwischenablage oder Formatierung entfernen? – Kyton

+0

Hijacking Zwischenablage – KARC

Antwort

3

Mit Code von beiden hier Javascript: Hijack Copy? und hier Get the Highlighted/Selected text (dank @Jacque Goupil) konnte ich den folgenden Code ein Stück zusammen, das die Formatierung von allem, was auf der Seite kopiert Streifen:

$("body").bind('copy', function(e) { 
var newEl = document.createElement("p"); 
document.body.appendChild(newEl); 

if (window.getSelection) { 
    newEl.innerHTML = window.getSelection().toString(); 
} else if (document.selection && document.selection.type != "Control") { 
    newEl.innerHTML = document.selection.createRange().text; 
} 

var selection = document.getSelection(); 
var range = selection.getRangeAt(0); 
selection.selectAllChildren(newEl); 

setTimeout(function() { 
    newEl.parentNode.removeChild(newEl); 
    selection.removeAllRanges(); 
    selection.addRange(range); 
}, 0) 
}); 

Danke für die Hilfe jeder!

+0

So froh, dass Sie eine Lösung finden könnten. Das ist die wahre Antwort. Alle anderen Antworten zum Lernen von Strg + Umschalt + V und anderen Problemumgehungen scheinen nicht zu verstehen, wo das eigentliche Problem liegt. –

3

Was standardmäßig in der Zwischenablage gespeichert wird, hängt vom Browser ab. Textprozessoren wie Microsoft Word haben normalerweise Optionen, um den eingefügten Stil zu ignorieren. Es sollte also kein Problem sein, wenn sie lernen, wie man sie richtig verwendet.

Wenn Sie den Menschen das Leben noch leichter machen möchten, könnten Sie Kopierereignisse erkennen und den formatierten Text durch Rohtext ersetzen. Dies könnte Ihnen helfen:

How do I copy to the clipboard in JavaScript?

Get the Highlighted/Selected text

+0

Diese Links haben sehr geholfen! Ich war in der Lage, etwas Code für eine wirklich einfache Lösung zu kratzen, die letztere verwendend. – Kyton

0

In Word Sie die Option ‚Einfügen als Klartext‘ haben (oder ‚Einfügen ohne Formatierung‘, nicht sicher über die genauen Namen auf Englisch). Auf diese Weise können Sie Text problemlos von jeder Website ohne Markup einfügen.

Ich denke nicht, dass es die Verantwortung der Website sein sollte, eine "Kopie ohne Markup" zu implementieren.

Andere Trick: Text zuerst mit Markup im Editor einfügen. Dann wählen Sie es im Editor und kopieren Sie es erneut. Die Zwischenablage enthält jetzt nur noch Klartext.

Natürlich ist es schwierig, die Benutzer zu erziehen, aber es sei denn, es gibt einen sehr guten Grund, warum Leute Texte von der Website kopieren würden, würde ich keine benutzerdefinierte Implementierung dafür machen. Diese Implementierungen, insbesondere wenn Sie das Standardverhalten überschreiben (Capture Strg + C), werden wahrscheinlich nicht gut oder zumindest nicht in jedem Browser gleich funktionieren, und sie sind nur eine Lösung für Ihre Website, nicht für alle anderen. Außerdem könnte eine solche Funktion andere Benutzer verärgern, die wissen, wie man mit Text mit Markup umgehen kann. Also denke ich, dass es besser ist, die Nutzer selbst herausfinden zu lassen.

Zum Kopieren der Zwischenablage, wenn Sie HTML kopieren, kopiert der Browser den Inhalt tatsächlich in mehrere Formate, wie HTML, RTF und Nur-Text. Wenn Sie die Mittel hätten, könnten Sie einfach die HTML- und RTF-Version aus der Zwischenablage entfernen und die reine Textversion behalten. Aber ich bin mir ziemlich sicher, dass Sie nicht so viel Kontrolle über die Zwischenablage aus dem Browser haben.

+0

Wahr und nutzlos. Sie empfehlen, sich mit jedem verärgerten (potenziellen) Kunden anzumelden und zu streiten? Okay ... Ich glaube nicht, Tipps für die * Kunden gemeint * hier wird von ihnen lesen ... –

+0

@Someone, vielen Dank für Ihr konstruktives Feedback. Ich denke, wenn Sie eine reine Textkopie als Überschreibung für eine normale Kopie implementieren, wird die andere Hälfte der Benutzer nicht mehr angezeigt. Auch wird es eine Menge Arbeit sein und kontraintuitiv für Benutzer, * Sie * wissen, wie mit einem Textverarbeitungsprogramm zu arbeiten und erwarten, dass Text mit Markup zu kopieren. – GolezTrol

+1

@Someone: Es kommt darauf an. Die Frage bezieht sich auf * Tester * Kopieren und Einfügen. Sie haben einen guten Grund, viel von der Website zu kopieren (z. B. um E-Mails über Fehler zu senden, Änderungen vorzuschlagen usw.); Abhängig von der Website kann oder darf nicht erwartet werden, dass * Benutzer * (die Kunden sein können oder nicht!) gemeinsam von der Website kopieren und einfügen. – psmears

2

Strg + Alt + v oder Strg + Umschalt + v sollten einfügen, was in Ihrer Zwischenablage als unformatierten Text eingefügt wird. Sehr praktisch zum Kopieren von Codebeispielen in Word-Dokumente. Dies sollte auch auf Mac funktionieren, wenn Sie Cmd für Ctrl

+1

Für mich reicht das für eine Antwort. Ange acount diesen Kommentar: http://stackoverflow.com/questions/28331422/is-there-a-way-to-allow-users-to-copy-text-from-a-website-and-the-text- be-UNFOR # comment45010545_28331422, sollten wir versuchen, nicht das Standardverhalten von solchen Dingen zu überschreiben, und lernen ein paar neue Verknüpfungen :). +1. –

Verwandte Themen