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

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

02.07.2018, 12:01. Показов 131210. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru