Иногда случается, что просто очень было бы здорово, чтобы была возможность что-то скопировать со страницы по нажатию на одну клавишу. Когда? Ну, к примеру, для чего-нибудь в админке, или для копирования блока кода на сайте. Конечно, можно обойтись простым выделением с CTRL+C, но когда речь идёт об удобстве и юзабилити, то нужен другой способ.
Увы, но на жабаскрипте сделать подобное, и причём кроссбраузерно, практически нереально (если вообще реально – прим.ред.). Всё дело в том, что функция копирования в буфер просто исключена из большинства браузеров из-за её небезопасности.
Представьте, заходите вы на сайт и опа, у вас в буфере метр порнухи в текстовом виде. Не прикольно? Полагаю нет, хотя кому то это может даже и на руку бы было. Но ладно, это баловство. А что, если скрипт не копирует, а читает из буфера, а там пароль какой-нибудь с логином, или номер кредитки, или ещё чего?
Хотя есть один браузер, очень замечательный такой браузер, у которого эта функция частично реализована и работает. И это, тадам, Internet Explorer (кто бы сомневался – прим.ред.). Простым навешиванием на кнопку события с copyToClipboard('id_of_input'), мы сможём копировать то, что надо. Конечно, эта функция кроме ишака не работает.
А что же делать, если оно приспичило и надо? Ну, как говорится, что когда нельзя и очень хочется, то можно. Если нельзя копировать на JavaScript'е, то воспользуемся флэшом, который это может.
Итак, представляю вашему вниманию ZeroClipboard. Он состоит из файла скрипта и файла прозрачной флэшки. Скрипт привязывает флэшку к нужной нам кнопке и задаёт соответствующий размер. И когда мы будем нажимать (или просто наводить) на флэшку, то будет происходить копирование в буфер.
Не буду голословным и перейду к делу (и ты это говоришь после страницы текста? – прим.ред.). Предлагаю для скачки архив с сайта разрабочика и ссылку на описание от xiper,net – там очень доходчиво расписаны все функции плагина. Я, в свою очередь, поделюсь своим примером и некоторыми замечаниями по работе с плагином, чтобы вы, дорогие читатели, были в теме.
Итак, а теперь о некоторых минусах плагина:
-
Самый большой минус плагина заключается в следующем. К примеру, есть поле textarea, из которого я хочу скопировать содержимое. Нажимаем, копируется. Вроде бы хорошо, НО. Если я внесу изменения в поле, то изменения скопированы не будут, будет скопирован лишь изначальный текст, увы. Обойти эту тему может и возможно, но я не пробовал.
-
Если запускать пример просто из папки на компе – он не работает. Особо не заморачивался, но пришлось пример поднимать на сервере. Мелочь, а неприятно
-
Если флэшплеер на компе не установлен, работать плагин, ясен перец, не будет.
Вот пожалуй и всё. Если всё таки копирование понадобится, плагин есть, правда со своими небольшими ограничениями. Могу лишь добавить, что аналога лучше я не встречал, так что используйте на здоровье.
Пишите мнения на тему копирования, приходилось ли сталкиваться с этим вопросом и как вы его решали! Буду рад обсудить и пообщаться!
С вами был ШуБложник в хорошем настроении – Александр. До новых встреч!
24/03/2011 at 20:59 Постоянная ссылка Цитировать
А какие плагины обычно используют для блоков с кодом, где сразу есть такая кнопка?
24/03/2011 at 21:57 Постоянная ссылка Цитировать
если честно, то я не знаю. помню где-то один-два раз давно видел, но как-то даже и не задумывался порыскать на тему. а найти такой плагин можно только методом перебора.
09/08/2013 at 14:49 Постоянная ссылка Цитировать
у меня убунта 12,04, не работает эта ерунда, в опере гугле и мазиле, какие только плагины не ставил ноль. вроде копирует в буфер а там нет ничего
09/08/2013 at 15:00 Постоянная ссылка Цитировать
Пример, размещённый по ссылке выше, не работает вообще из-под пингвина, хотите сказать? Сам ни разу не проверял, и возможности проверить под пингвина вообще нет. Ради интереса могу на коллеговском маке проверить, разве что.