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

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

02.07.2018, 12:01. Показов 131282. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru