Javascript - kopiowanie do schowka

Ostatnio przytrafił mi się problem, natury skopiowania czegos za pomocą Javascript do schowka. W sumie czynność nie powinna być trudna, ale jak sie okazało jest zupełnie inaczej. Napisałem skrypt, który niestety, ale ze standardowymi ustawieniami przeglądarek działał tylko na IE. Zgroza, a co z Firefoxem, Operą czy np. Safari? Co mamy obiekt skopiuj do schowka i co dalej, jak standardowe ustawienia nie pozwalają na taką operacje. Pytająć wujka Google o to co z tym problem zrobic, dostałem w odpowiedzi bardzo wygodnego i przeznaczonego do tego flasha.

Flash

Jak juz napisałem we wstępie będzie nam do tego potrzebny flash, który jest załaczony do tego artykułu. Można go tez pobrać bezpośrednio ze strony autora. Działanie jego jest proste przychwytuje tekst z dokumentu html i wrzuca nam do schowka.

Instalacja

Aby całość działała musimy dodać kod który będzie obsługiwał wklejanie, tak aby można było flash'a uruchomić w wygodny sposób. Kod wygląda następująco:

function copy(text) {
        var flashId = 'flashId-HKxmj5'; //id div z niewidzialnym flashem
        var clipboardSWF = '/swf/clipboard.swf'; //sciezka do pliku

        if(!document.getElementById(flashId)) {
            var div = document.createElement('div');
            div.id = flashId;
            document.body.appendChild(div);
        }
        document.getElementById(flashId).innerHTML = '';
        var content = '<embed src="' +
            clipboardSWF +
            '" FlashVars="clipboard=' + encodeURIComponent(text) +
            '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        document.getElementById(flashId).innerHTML = content;
}

Teraz już wystarczy nam tylko oprogramować odpowiednie akcje, co ma się kopiować oraz po kliknieciu czego. Wystarczy bezpośrednio wywoływać tą metode. Przykładowy kod wykorzystujący flasha do kopiowania: http://mephir.net.pl/przyklady/copy-to-clipboard/.

ZałącznikWielkość
clipboard.rar186 bajtów
Your rating: Brak Ocena: 3.7 (3 votes)

polecam:

Dodaj nową odpowiedź

Zawartość pola nie będzie udostępniana publicznie.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Znaki końca linii i akapitu dodawane są automatycznie.
  • You can use the <go> tags just like the <a> for nicer urls.

Więcej informacji na temat formatowania