Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/684: Рейтинг темы: голосов - 684, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 68

Копировать в буфер обмена по нажатию

02.07.2018, 12:01. Показов 131028. Ответов 18
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите решить такую проблему. Есть кнопка, при нажатии на которую, должен копироваться url сайта. url меняться не будет, он статичный.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2018, 12:01
Ответы с готовыми решениями:

Копировать в буфер обмена по нажатию
Здравствуйте! Помогите решить такую проблему. Есть кнопка, при нажатии на которую, должен копироваться заготовленный мной текст.

Копировать в буфер обмена атрибуты
Здравствуйте, нашел скрипт для копирования атрибутов но у меня не получилось настроить этот скрипт помогите сделать... Есть на сайте...

Скопировать в буфер обмена
Есть переменная, содержит строчку, как эту строчку скопировать в буфер обмена? Посредством чистого javascript...

18
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 12:55
Лучший ответ Сообщение было отмечено ponomarevbro895 как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
function copyToClipboard() {
 var copytext = document.createElement('input')
 copytext.value = window.location.href 
 document.body.appendChild(copytext)
 copytext.select()
 document.execCommand('copy')
 document.body.removeChild(copytext)
}
1
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 68
02.07.2018, 13:31  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение
JavaScript
1
2
3
4
5
6
7
8
function copyToClipboard() {
 var copytext = document.createElement('input')
 copytext.value = window.location.href 
 document.body.appendChild(copytext)
 copytext.select()
 document.execCommand('copy')
 document.body.removeChild(copytext)
}
а можно еще html самой кнопки
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 13:34
HTML5
1
<button onclick="copyToClipboard()">push me!</button>
или
HTML5
1
<button id="copier">push me!</button>
JavaScript
1
2
3
4
5
6
7
8
document.getElementById('copier').addEventListener('click', function(e) {
 var copytext = document.createElement('input')
 copytext.value = window.location.href 
 document.body.appendChild(copytext)
 copytext.select()
 document.execCommand('copy')
 document.body.removeChild(copytext)
})
0
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 68
02.07.2018, 14:26  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение
HTML5
1
<button onclick="copyToClipboard()">push me!</button>
или
HTML5
1
<button id="copier">push me!</button>
JavaScript
1
2
3
4
5
6
7
8
document.getElementById('copier').addEventListener('click', function(e) {
 var copytext = document.createElement('input')
 copytext.value = window.location.href 
 document.body.appendChild(copytext)
 copytext.select()
 document.execCommand('copy')
 document.body.removeChild(copytext)
})
Не работает
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 14:35
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<script>
function copyToClipboard() {
 var copytext = document.createElement('input')
 copytext.value = window.location.href 
 document.body.appendChild(copytext)
 copytext.select()
 document.execCommand('copy')
 document.body.removeChild(copytext)
}
</script>
 
<button onClick="copyToClipboard()">push me</button>
у меня работает
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
02.07.2018, 14:36
ponomarevbro895,
Evgen1337 слегка ошибся, вот его код немного переделанный:
HTML5
1
<button id="copier">push me!</button>
JavaScript
1
2
3
4
5
6
7
document.getElementById('copier').addEventListener('click', function(e) {
    var copytext = document.createElement('input');
    copytext.value = window.location.href;
    document.body.appendChild(copytext);
    copytext.select();
    document.execCommand('copy');
});
Так 100% работает.

Добавлено через 55 секунд
Evgen1337,
Ты на 8 строке зачем делаешь removeChild(copytext) ??
Из-за этого и не работает.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 14:37
zlojnaxa, ремув делать тоже стоит, а то будет с каждым кликом плодится инпут в бади
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
02.07.2018, 14:38
Evgen1337,
Погоди, не понял а у тебя href куда заносится?
Аа все понял- в буфер обмена.
Да тогда это я затупок и 8 строку не надо удалять
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 14:40
zlojnaxa, никуда не заносится, создается фейковый интуп, в него кладу текущий забитый урл из адресной строки, делаю копиТуКлипборд, и удаляю фейковый инпут
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
02.07.2018, 14:42
Evgen1337,
я понял уже
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 14:43
zlojnaxa, сюпир %)
0
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 68
02.07.2018, 17:52  [ТС]
Цитата Сообщение от zlojnaxa Посмотреть сообщение
ponomarevbro895,
Evgen1337 слегка ошибся, вот его код немного переделанный:
HTML5
1
<button id="copier">push me!</button>
JavaScript
1
2
3
4
5
6
7
document.getElementById('copier').addEventListener('click', function(e) {
    var copytext = document.createElement('input');
    copytext.value = window.location.href;
    document.body.appendChild(copytext);
    copytext.select();
    document.execCommand('copy');
});
Так 100% работает.

Добавлено через 55 секунд
Evgen1337,
Ты на 8 строке зачем делаешь removeChild(copytext) ??
Из-за этого и не работает.
Блин, не пойму что-то(((
Я беру js и саму кнопку, вставляю на сайт и ничего не копирует по нажатию(
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
02.07.2018, 18:19
если ты используешь вариант через document.getElementId

тогда у тебя скрипт должен выполнятся после полной загрузки страницы, или этот скрипт нужно поместить в конец документа

HTML5
1
2
3
4
5
6
7
8
<html>
 <body>
...
 <script>
  здесь тот скрипт
 </script>
 </body>
</html>
0
0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 68
02.07.2018, 23:49  [ТС]
Цитата Сообщение от Evgen1337 Посмотреть сообщение
если ты используешь вариант через document.getElementId

тогда у тебя скрипт должен выполнятся после полной загрузки страницы, или этот скрипт нужно поместить в конец документа

HTML5
1
2
3
4
5
6
7
8
<html>
 <body>
...
 <script>
  здесь тот скрипт
 </script>
 </body>
</html>
Спасибо! Все работает! А есть вариант, чтобы не конкретную ссылку копировал, а текст, который я сам напишу?
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
03.07.2018, 00:14
https://github.com/lgarron/clipboard-polyfill

Добавлено через 1 минуту
https://stackoverflow.com/a/6055620
https://stackoverflow.com/ques... javascript
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
03.07.2018, 04:53
Цитата Сообщение от ponomarevbro895 Посмотреть сообщение
А есть вариант, чтобы не конкретную ссылку копировал, а текст, который я сам напишу?
Конечно есть. Берешь ту функцию которую тебе написал Evgen1337 и немного изменяешь, в конечном итоге выглядеть она будет вот так:
JavaScript
1
2
3
4
5
6
7
8
9
function copyToClipboard(text){
    var copytext=document.createElement('input')
    if(typeof text=='undefined') copytext.value=window.location.href
    else copytext.value=text
    document.body.appendChild(copytext)
    copytext.select()
    document.execCommand('copy')
    document.body.removeChild(copytext)
}
Что бы функция начала работать нужно повесить на нее событие, наример, клик, вот так:
JavaScript
1
2
3
document.getElementById('copier').addEventListener('click',function(){
    copyToClipboard("Свой текст для копирования")    // текст нужно писать обязательно в кавычках
})
Если нужно что бы копировался url вместо своего текста то просто пишешь так:
JavaScript
1
2
3
document.getElementById('copier').addEventListener('click',function(){
    copyToClipboard()    // здесь между скобок удаляешь ВСЕ вместе с кавычками
})
Ну и на всякий случай, этот пример основан на элементе <button><button> . По факту можно вместо <button><button> использовать любой другой тег, например, <div><div>, самое главное указать у используемого тега id=copier
0
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
20.02.2020, 20:13
хм, интересно, я добавил инпуту
JavaScript
1
copytext.setAttribute('type', 'hidden');
и скрипт перестал работать, убрал эту строку - заработал.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
21.02.2020, 01:02
klopp, используемый в коде метод select работает только с видимыми объектами, а попытка выделить невидимый элемент приведет к ошибке исполнения (run-time error)
и в консоли любого браузера вы могли бы увидеть пояснение этой ошибки
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2020, 01:02
Помогаю со студенческими работами здесь

Копирование в буфер обмена средствами JS
Всем доброго времени суток! Нашел в блоге Hacks Mozilla вот такую статью...

Поместить текст в буфер обмена
Здравствуйте. Без понятия в какой язык обратиться с таким вопросом. Я прошу перенести в подходящее место эту тему, если что-то вдруг не в...

Передача параметра в буфер обмена c JavaScript
Пользовательская форма вызывается по щелчку на веб-странице. Эта форма с кнопками написана на JavaScript. Необходимо по нажатию на кнопку...

Скопировать содержание input в буфер обмена.
Люди помогите нужен скрипт которые мог бы при нажатии на ссылку копировать текст с тега input в буфер обмена.

Сохранение в буфер обмена клиента строки
Нужно при клике на некоторую кнопку записывать строку текста из ее value в буфер обмена. Нашел решения для текстбоксов и то только под ІЕ....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru