2012-10-22 21 views
7

Jestem zaznajomiony z ZeroClipboard i jquery.copy, które używają Flasha. OK, więc rozumiem, ze względu na bezpieczeństwo przeglądarki, kopiowanie jest niedozwolone i potrzebujemy Flasha. Oznacza to jednak, że funkcja kopiowania nie działa w telefonach komórkowych (iPhone, Android) lub iPad.Skopiuj do schowka, który działa również na urządzeniach mobilnych?

Czy istnieje jakiś zasób lub wtyczka, która umożliwia prostą funkcję kopiowania do schowka w obu nowoczesnych przeglądarkach (w tym IE7 +) i przeglądarkach mobilnych?

Dzięki!

+3

_ "... w obu nowoczesnych przeglądarkach (w tym IE7 +) ..." _. Czy IE7 to nowoczesna przeglądarka? :) –

+0

Sprawdź http://stackoverflow.com/a/43001673/4680236 –

Odpowiedz

2

Chciałem zaoferować aktualizacji, ponieważ były pewne niedawne wydarzenia na tym froncie. Nowoczesne przeglądarki, z wyjątkiem kopiowania wsparcia Safari przez JS, przy użyciu funkcji execCommand().

Zakładając, że Twój interfejs użytkownika zostanie pogrubiony, aby można go było ręcznie kopiować w Safari, możesz zaimplementować funkcję kopiowania do schowka w pozostałych. Można przypuszczać, że Safari w końcu do tego dołączy.

Spójrz na https://clipboardjs.com/ i http://www.sitepoint.com/javascript-copy-to-clipboard/, aby wyświetlić opcje.

Obsługiwane przeglądarki, od momentu pisania: Chrome 42+, Firefox 41+, IE 9+, Opera 29+.

+0

Safari, które nie wspiera tego, pozostawia przyszłość w ciemności! –

+0

Ten działa dla mnie w iOS i Safari. http://stackoverflow.com/a/43001673/4680236 –

15

Nie ma świetnego rozwiązania, aby to zrobić bez użycia lampy błyskowej. Po prostu powinienem zachować prostotę i pozwolić użytkownikom na samodzielne kopiowanie tekstu. W ten sposób google wyświetla swój kod analityki użytkownikom, aby mogli umieszczać je w swoich witrynach. Jestem pewien, że gdyby był świetny sposób na to, że Google będzie go używać.

ich prostota:

$(function(){ 
    $('.text').click(function(){ 
     $(this).select(); 
    }); 
}); 

wydarzenie ostrości: http://jsfiddle.net/khXjC/

Kliknij wydarzenie: http://jsfiddle.net/qjfgoeLm/

+6

Musisz zrobić '.select()' na '.click()' zamiast fokusować. Na fokusie wyzwala się najpierw, a następnie kliknij, aby tekst podświetlił się, ale wtedy pojawi się kurtyna i tekst zostanie odznaczony. – roborourke

+0

Dzięki, fokus działał, kiedy po raz pierwszy to opublikowałem, ale domyślam się, że przeglądarki zmieniły się od 2012 roku. – tlaverdure

Powiązane problemy