2010-03-08 12 views
13

Ho visto alcuni siti ora in cui, se si evidenzia il testo di un articolo, lo si copia e quindi si incolla, è possibile aggiungervi altro testo.Modifica dei dati degli Appunti quando si copia/incolla da un sito Web

Prova a copiare e incollare una sezione di testo da un articolo allo http://belfasttelegraph.co.uk/ e vedrai cosa intendo: aggiungono un collegamento all'articolo originale nel testo incollato.

Come è fatto? Presumo che ci sia qualche javascript al lavoro qui

+1

Interessante. Ho fatto di tutto per capire come * prevenire * qualsiasi sito, mai facendo esattamente questo. Usare con parsimonia. – Ricky

risposta

8

Questo è un buon effetto, si può vedere lo script che è stato sparato sulla copia utilizzando Firebug (in Firefox).

Avvia Firebug e carica la pagina, scegli Cancella (perché la pagina utilizza molto ajax ci sono ben 100 richieste). Quindi seleziona la scheda "Tutti" e prova a copiare. Vedrai una richiesta per un'immagine di 1x1 pixel ma se premi il pulsante + per vedere i dettagli, vedrai nella scheda 'Params' che questa richiesta GET passa il tuo testo richiesto come parametro 'content', con alcuni informazioni XPath che verrà utilizzato per manipolare il DOM appunti:

start_node_xpath /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[39]/text() 

end_node_xpath /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[41]/text() 

Come @Crimson rilevare ci sono metodi per manipolare negli appunti, like zeroclipboard che utilizzano Flash e un'immagine.

Suppongo che è come la tecnica viene eseguita utilizzando l'immagine ottenere la richiesta di modificare gli Appunti.

+0

Mi chiedo se ho preso un -1 lungo la strada? – amelvin

+1

+1 per la spiegazione sull'uso di Firebug. –

3

Si noterà che ciò accade solo quando si utilizza la combinazione di tasti [Ctrl + C] e non se si evidenzia il testo e si sceglie la copia dal menu di scelta rapida.

Stanno semplicemente intrappolando il tasto [Ctrl + C].

Inoltre, per aggiungere i dati negli appunti, dare un'occhiata a questo post: How do I copy to the clipboard in JavaScript?

+0

Non sono d'accordo. Sto usando XP/Firefox 3.5.8 e se metto in evidenza, tasto destro del mouse e scegliere copia si aggiunge il permalink al testo copiato. – amelvin

1

Ho notato recentemente un afflusso di questo "sequestro di appunti" sui siti web. thefutoncritic.com, cracked.com ... Se usi Adblock, vai nella lista "manual entries" e aggiungi * post-copypaste.js *. Questo dovrebbe impedire ai siti di aggiungere i loro annunci negli Appunti.

0

Un sito di news che visito uso questo funzione per aggiungere una "fonte" alla selezione copiata:

function addLink() { 
    var body_element = document.getElementsByTagName('body')[0]; 
    var selection; 
    selection = window.getSelection(); 
    // change this if you want 
    var pagelink = "<br><br>Fuente: Emol.com - <a href='"+document.location.href+"'>"+document.location.href+"</a><br>"; 
    var copytext = selection + pagelink; 
    var newdiv = document.createElement('div'); 
    newdiv.style.position='absolute'; 
    newdiv.style.left='-99999px'; 
    body_element.appendChild(newdiv); 
    newdiv.innerHTML = copytext; 
    selection.selectAllChildren(newdiv); 
    window.setTimeout(function() { 
     body_element.removeChild(newdiv); 
    },0); 
} 
document.oncopy = addLink;