Скопировать содержимое блока в буфер обмена при нажатии
Віталий
Доброго времени суток
В этой статье я покажу простой скрипт, который поможет копировать текст в блоке при клике на него. Данный скрипт очень полезная штука, если ваша основная задача - верстка лендингов, создание тем и тд. Суть его в том, что вы определяете нужный блок, кнопку, поле и тд, нажав на которое в буфер обмена скопируется его содержимое а на странице появится сообщение о том что содержимое скопировано.
Пример того что получится в итоге можно посмотреть нажав на кнопку ниже. Также можете скачать пример.
Если это то что вам нужно, то давайте приступим к теории, как это сделать. По сути вам надо сделать следующие шаги. Для начала нужно добавить нужному элементу класс - text_copy_link. Можно любой, но тогда нужно будет указать тот клас в скрипте, о котором немного позже.
Так же надо добавить на страницу блок с сообщением об успешном копировании. Это блок с классом - copy_link_mess. Текст внутри можете менять на любой. Пример того что надо добавить выглядит так:
<div class="text_copy_link">Текст или [shortcode] который скопируется</div>
<div class="copy_link_mess">Скопировано в буфер обмена</div>
Как я и сказал. Первый блок это тот, текст внутри которого копируется, а второй это блок с оповещением. Для него можно и нужно добавить стили CSS. Блок должен быть спрятан изначально и появляться лишь при клике по блоку с текстом.
Теперь очередь пришла к самому важному - jQuery скрипт, что будет выполнять всю работу. Но, перед его добавлением, нужно убедится, что к вашему сайту подключена библиотека jQuery. Если нет, то это нужно сделать. Можете воспользоваться статей Как и где подключить скрипт?, если не знаете как это сделать.
Дважды подключать тоже не нужно. Можете сначала сделать следующий шаг и если не будет работать, то тогда вернуться к библиотеке
И вот теперь, уже после библиотеки, можно подключить скрипт. Скопируйте его и добавьте в нужное место. Шапка или подвал сайта. Так же можно прямо на страницу после блока с сообщением об успешном копировании, если скрипт нужен только на одной странице.
В второй строке указываем класс элемента по клику на который будет выполнятся скрипт - text_copy_link. Как я и говорил класс может быть любой, главное, чтобы у элемента и в скрипте он совпадал.
Во третей строке задаем переменную - $text_copy. Это наш блок по которому мы кликнули.
В четвертой строке создаем переменную - $temp. Это просто поле, в котором будем хранить содержимое, то что скопировали.
В пятой строке после тега body выводим наше поле.
Далее в шестой строке, нашему полю ввода присваиваем содержимое и выделяем текст нашего элемента, по которому кликнули.
В седьмой строке копируем в буфер то что выделеноdocument.execCommand("copy");
Восьмая строка - удаление нашего поля ввода, что мы создали временно и добавили после body
В принципе, это основная часть скрипта, именно она выполняет копирование. Следующие две строки - это вывод нашего блока с сообщением об успешном копировании. Если вам не нужно это то следующие две строки не нужны, так же не нужен и сам блок сс сообщением. если же нужен, то:
$('.copy_link_mess').fadeIn(400); - Показываем блок с классом - copy_link_mess.
setTimeout(function(){$('.copy_link_mess').fadeOut(400);},5000); - прячем наш блок через 5 секунд. 5000 - это и есть 5 сек, просто указано в миллисекундах. Можете поменять на свое.
Далее закрываем скобки и все готово. Теперь можно проверить работу проделанной работы. Если вы все сделали правильно и не допустили ошибок то все должно работать.