2015-02-04 16 views
6

Praticamente solo la domanda. Ho un cliente che richiede un design negativo con testo quasi bianco su tutta la pagina Web, ma i tester dicono che è noioso copiare e incollare dal sito Web come tutto ciò che appare come testo bianco quando si copia in Word o simili.Esiste un modo per consentire agli utenti di copiare il testo da un sito Web e il testo non formattato?

Esiste un modo per rimuovere preventivamente la formattazione quando un utente tenta di copiare il testo dal sito Web? O c'è un modo per dirottare ciò che viene effettivamente messo negli appunti?

+0

Penso che sia possibile con un po 'di jquery o vanilla.js: D – KARC

+0

Quale percorso pensi che dovrei esaminare? Dirottando appunti o rimuovendo la formattazione? – Kyton

+0

Appunti di hijacking – KARC

risposta

3

Utilizzando il codice sia da qui Javascript: Hijack Copy? e qui Get the Highlighted/Selected text (grazie @Jacque Goupil) sono stato in grado di mettere insieme il seguente codice che mette a nudo la formattazione da qualsiasi cosa copiate nella pagina:

$("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) 
}); 

Grazie per l'aiuto tutti!

+0

Sono contento che tu abbia trovato una soluzione. Questa è la vera risposta. Tutte le altre risposte sull'apprendimento di Ctrl + Shift + V e altre soluzioni alternative non sembrano capire dove si trova il vero problema. –

3

Ciò che viene visualizzato negli appunti per impostazione predefinita dipende dal browser. I processori di testo come Microsoft Word di solito hanno opzioni per ignorare lo stile incollato, quindi non dovrebbe essere un problema se imparano come usarlo correttamente.

Se si desidera rendere la vita più facile alle persone, è possibile rilevare gli eventi di copia e sostituire il testo formattato con testo non elaborato. Questo potrebbe aiutare a:

How do I copy to the clipboard in JavaScript?

Get the Highlighted/Selected text

+0

Questi collegamenti hanno aiutato molto! Sono stato in grado di racchiudere un po 'di codice per una soluzione davvero semplice, utilizzando quest'ultima. – Kyton

0

In Word hai la possibilità di 'Incolla come testo normale' (o 'Incolla senza formattazione', non sono sicuro del nome esatto in inglese). In questo modo, puoi incollare facilmente testo da qualsiasi sito web senza markup.

Non penso che dovrebbe essere responsabilità del sito Web implementare una "copia senza markup".

Altro trucco: incollare prima il testo con il markup nel Blocco note. Quindi selezionalo in Blocco note e copia di nuovo. Gli appunti ora contengono solo testo normale.

Ovviamente è difficile educare gli utenti, ma a meno che non ci sia una buona ragione per cui la gente copi i testi dal sito web, non realizzerei un'implementazione personalizzata per questo. Quelle implementazioni, specialmente quando si sostituisce il comportamento predefinito (cattura Ctrl + C), probabilmente non funzioneranno bene o almeno lo stesso in ogni browser, e sono solo una soluzione per il tuo sito web, non per tutti. Inoltre, una tale funzionalità potrebbe infastidire gli altri utenti che fanno sanno come gestire il testo con mark-up. Quindi penso che sia meglio permettere agli utenti di capire da soli.

Per quanto riguarda il dirottamento degli appunti, se si copia HTML, il browser copia effettivamente il contenuto in più formati, ad esempio HTML, RTF e testo normale. Se avessi i mezzi, potresti semplicemente rimuovere la versione HTML e RTF dagli appunti e lasciare che rimanga la versione in testo normale. Ma sono abbastanza sicuro che tu non abbia così tanto controllo sugli appunti dal browser.

+0

Vero e inutile. Si consiglia di chiamare e discutere con ogni (potenziale) cliente insoddisfatto? Va bene ... non penso che i suggerimenti siano pensati per i clienti * qui verranno letti da loro ... –

+0

@Someone, grazie per il tuo feedback costruttivo. Penso che se implementi una copia in testo normale come override per una copia normale, l'altra metà degli utenti verrà disattesa. Inoltre, sarà molto lavoro e sarà contro-intuitivo per gli utenti che * sanno * come lavorare con un processore di Word e si aspettano di essere in grado di copiare il testo con il markup. – GolezTrol

+1

@Someone: dipende. La domanda riguarda * tester * copia e incolla. Hanno una buona ragione per copiare molto dal sito web (ad esempio per inviare e-mail sui bug, suggerire modifiche, ecc.); a seconda del sito web, potrebbe non essere previsto per * utenti * (che potrebbero o non potrebbero essere clienti!) di copiare e incollare normalmente dal sito. – psmears

2

Ctrl + alt + v o ctrl + shift + v dovrebbe incollare ciò che è presente negli Appunti come testo non formattato. Molto utile per copiare esempi di codice in documenti word. Questo dovrebbe funzionare anche su Mac se si sostituisce cmd per Ctrl

+1

Per quanto mi riguarda, è sufficiente per una risposta. Prendendo in considerazione questo commento: 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, dovremmo cercare di non sovrascrivere il comportamento predefinito di tali cose e imparare alcune nuove scorciatoie :). +1. –

Problemi correlati