Добавление текста в буфер обмена на JavaScript
Необходимо скопировать в буфер обмена некий текст. Задача осложнаяется тем, что браузеры позволяют скопировать в буфер, в целях безопасности только программно выделенный текст. Т.е. не получится скопировать в буфер любой текст, а возможно только тот, который находится в тегах типа input, textarea и т.п.
Решение:
Работать будет только в сборках браузеров старше 2015года!
- Выводим на странице скрытый текстовый блок
1<textarea style="display:none;" id="url_to_copy"></textarea> - По нажатию кнопки «Скопировать», показываем этот блок. К сожалению иначе выделение не работает, приходится показывать.
- Заносим в этот блок текст необходимый для копирования в буфер
- Программно выделяем текст
- Убираем с глаз долой этот текстовый блок.
Как показывает практика при умелом «прятаньи» этого блока в тексте страницы, пользователь ничего не замечает.
Пример кода:
1 2 3 4 5 6 7 |
$("#url_to_copy" ).show(); url="https://nocfcefertelesererfe.ru/index.php?content_page=lanbilling/sos&billing_id="+$("#blibase").val()+"&agrm_id="+id; $("#url_to_copy").val(url); url_to_copy.select(); document.execCommand("copy"); $("#url_to_copy").attr("display:none"); |