Odpovědět na komentář

Kopírování do schránky

U Jdem.cz jsem narazil na problém při implementaci funkce "kopírování textu do schránky". Ono to totiž není tak prosté, jak by se zdálo... Jedno možné řešení nabízím v článku.

Pokud někdo zkoušel implementovat v JavaScriptu funkci "zkopírovat do schránky", tak jistě zjistil, že to není taková procházka růžovým sadem, jak by se mohlo zdát.

Tedy - v IE6 šlo použít postup, při němž byl z textu vytvořen Range a na něj použit příkaz Copy (range.execCommand('Copy');), ovšem ve FF tenhle postup selhával kvůli bezpečnostním omezením (vcelku pochopitelné - přeci nechcete, aby se vám stránky jen tak halabala hrabaly v clipboardu).

Řešilo se to oklikou - přes Flash. Fór byl v tom, že v non-IE prohlížečích byl vytvořen skrytý Flashový objekt, který vzal parametr a zkopíroval ho do clipboardu. (crossbrowser copy to clipboard)

Stejnou techniku jsem použil i na Jdem.cz, ale v posledních dnech mi začali lidi psát, že kopírování do schránky nefunguje. Nejprve jsem netušil v čem by mohl být problém, ale včera mi napsal Lukáš Havrlant (DĚKUJI!), že se pravděpodobně jedná o problém s Flashem, který (snad) v nové verzi začal požadovat, aby operace s clipboardem byla součástí nějaké uživatelské akce (kliknutí na něco, stisk tlačítka) - bližší info na Flash.cz.

Lukáš mi rovnou poslal (opět děkuji!) i jednoduchý Flashový udělátor, který obsahuje tlačítko "Kopírovat". Nejprve jsem ho nasadil, ale pak jsem zjistil, že tudy cesta nevede, protože já potřeboval, abych si mohl text na tlačítku změnit ad lib, a to Lukášův swf neuměl.

Chvíli jsem přemýšlel, jak to vyřešit, Flashe nemaje a neznaje, a nakonec jsem si vzpomněl, že jsem vlastně dělal s Flexem. Po pár minutách googlování bylo "univerzální kopírovací tlačítko" na světě. V akci ho můžete vidět na Jdem.cz a pokud ho chcete použít, máte ho k dispozici i se zdrojovým MXML: FlexCopier

Není to nijak dokonalé řešení a vůbec nejhorší je, že zabírá 200 kilo, ale jiné po ruce bohužel nemám. Pokud se najde šikovný flashař, který napíše "lehčí" obdobu a dá ji k dispozici, budu jen rád. Do té doby to je jediné řešení, které funguje, a jediná možná náhrada výše zmíněného výborného, ale bohužel už pomalu nefunkčního, flashového řešení...

Máte-li někdo nějaké jiné ověřené řešení, jak zkopírovat kliknutím na tlačítko text do clipboardu, sem s ním!

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.