Spędziłem trochę czasu, próbując znaleźć rozwiązanie, które skopiowałoby listę wielowierszową w HTML, usunęło tagi i wcięcia z przycisku onclick bez użycia Flasha. W moich badaniach natknąłem się na "jQuery click button copy to clipboard" i przetestowałem Alvaro Montoro's answer, ale rozwiązanie nie działa na liście wielowierszowej, ale działa doskonale dla tekstu akapitowego. Nie mam zamiaru obsługiwać interfejsu Clipbaord API, ponieważ pokazuje on bardzo różne przeglądarki w różnych wersjach: limited support. Prowadząc dalsze badania, natknąłem się na "HTML5 alternative to flash-based ZeroClipboard for safe copying of data to clipboard?", a odpowiedź Thayne'a łączy się z blog post, ale skopiuje cały HTML. Mam zorientowali się, jak rozebrać tagi i tiret:jQuery skopiuj listę wielu wierszy do schowka
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);
});
Jak mogę skopiować listę pozycji wielo-liniowy z jQuery, usunąć znaczniki, usunąć wcięcia i skopiować do schowka bez użycia Flasha? Czy istnieje wtyczka obsługująca wszystkie najnowsze przeglądarki, których nie widzę?
BTW, aby usunąć znaczniki, można użyć '.text()' zamiast '.html()'. – starikovs
@starikovs dziękuję, to była moja pierwsza iteracja testowania i nie chciałem opublikować kodu, który był zawikłany –
Jeśli używasz Twittera, jest coś takiego jak "copy tweet link", który pokazuje modal z zaznaczonym tekstem, a użytkownik może ctrl + c to. Dlaczego nie robisz tego samego? – starikovs