Ho passato un po 'di tempo a cercare una soluzione che copi un elenco a più righe in HTML, rimuovi tag e indentazioni tutto da un pulsante onclick senza utilizzare Flash. Nella mia ricerca ho incontrato "jQuery click button copy to clipboard" e ho testato Alvaro Montoro's answer ma la soluzione non funziona su un elenco a più righe ma funziona perfettamente per il testo di paragrafo. Non intendo supportare l'API Clipbaord perché mostra molto limited support attraverso i browser. Facendo ulteriori ricerche, ho trovato "HTML5 alternative to flash-based ZeroClipboard for safe copying of data to clipboard?" e la risposta di Thayne collega a uno blog post ma copierà tutto l'HTML. Ho capito come mettere a nudo i tag e trattini:jQuery copia elenco a più righe negli appunti
HTML:
<button onclick="copyToClipboard('#therecipe')">Copy List</button>
<div class="listing">
<ul id="someList">
<li>1 million</li>
<li>Monday</li>
<li>Something</li>
<li>Foobar</li>
<li>1tsp blah</li>
</ul>
</div>
<textarea class="auto"></textarea>
jQuery:
$('button').click(function(element) {
var thelist = $('#someList').html();
thelist = thelist.replace(/\s+<li>/g, '');
thelist = thelist.replace(/<\/?li>/g, '\r');
$('.auto').val(thelist);
});
Come posso copiare un elemento della lista multilinea con jQuery, rimuovere i tag, rimuovere i rientri e copiare negli Appunti senza utilizzare Flash? C'è un plugin che supporta tutti i browser più recenti che non vedo?
BTW, per rimuovere i tag è possibile usare '.text()' invece di '.html()'. – starikovs
@starikovs grazie, questa è stata la mia prima iterazione di test e non volevo postare codice che fosse contorto –
Se usi Twitter c'è qualcosa come "copia tweet link" che mostra una modale con testo selezionato e l'utente può ctrl + c esso. Perché non fai lo stesso? – starikovs