JavaScript - Копирование в буфер обмена
Функция копирования/вставки, без сомнения, является одной из наиболее часто используемых функций в современных вычислениях и относится к процессу копирования/переноса текста или изображений из одной части компьютерного приложения в другую. Совсем недавно стало обычной практикой программно копировать некоторое содержимое в буфер обмена пользователя, чтобы ему не приходилось этого делать.
Например, коды активации и подтверждения, которые появляются на странице или в электронном письме. Вы можете копировать их автоматически или иметь кнопку, которая позволяет кому-то копировать содержимое в буфер обмена, чтобы им не приходилось копировать его самостоятельно. Кроме того, фрагменты кода — отличный пример контента, который вы можете скопировать в буфер обмена.
[Корректируйте css под свой сайт.]
Вариант 1 - JavaScript - Копирование в буфер обмена
Копирование происходит того, что расположено в элементе с id="demo" по клику на элемент с id="copyToClipboard-all" . В примере используется <textarea></textarea> куда мы пишем текст, а затем копируем по клику на <button></button>. Использовать можно любой элемент ( <button></button> <p;></p> <span></span> и т.д.) с требуемыми id. И конечно, текст у же может быть написан.Пример для сайта
(напишите в поле ввода и нажмите на кнопку для копирования)
<div class="clipboard-div">
<textarea class="textareaclipboard" id="demo" rows="10" cols="50" minlength="10" maxlength="200" placeholder="(Write something here…) Напиши сюда что-нибудь..."> </textarea>
<button id="copyToClipboard-all" class="clipboard icon"></button>
</div>
JavaScript
<script>
/* start */
document.getElementById('copyToClipboard-all').addEventListener('click', function() {
var text = document.getElementById('demo');
text.select();
document.execCommand('copy');
})
/* end*/
</script>
CSS оформление
<style>
/* start */
.clipboard-div{ position:relative; background-color:#eee; padding:2em}
.textareaclipboard{ min-width:20vw; max-width:80vw; min-height:200px; max-height:80vh; padding:0.8em 1em; font-size:1em}
.textareaclipboard::-webkit-scrollbar{ width:4px}
.textareaclipboard::-webkit-scrollbar-track{ background:#f1f1f1}
.textareaclipboard::-webkit-scrollbar-thumb{ background:#888}
.textareaclipboard::-webkit-scrollbar-thumb:hover{ background:#555}
.clipboard.icon{ position:absolute; top:2.3em; right:2.5em; margin-top:4px; margin-left:4px; width:11px; height:13px; border:solid 1px #333; border-top:none; border-radius:1px; cursor:pointer}
.clipboard.icon:before{ top:-1px; left:2px; width:5px; height:1px; border:solid 1px #333; border-radius:1px}
.clipboard.icon:after{ width:3px; height:1px; background-color:#333; box-shadow:8px 0 0 0 #333}
.icon:before, .icon:after{ content:''; position:absolute; display:block}
/* end*/
</style>
codepen 1
Вариант 2 - JavaScript - Копирование в буфер обмена
В донном примере копируется то, что расположено в элементе с class="copyt" по клику в любом месте области элемента. В примере используется <span></span> . Использовать можно любой элемент ( <button></button> <p;></p> <span></span> и т.д.) с требуемыми class или id (надо изменить в javascript).Пример для сайта
(клик на текст для копирования)
Bitcoin: 3C268nVjEfRr6a4yCUPY4kjH6k8qP6K9vo
<span class="bold">Bitcoin:</span> <span class="copyt" title="копировать">3C268nVjEfRr6a4yCUPY4kjH6k8qP6K9vo</span>
JavaScript
<script>
/* start */
var copy = document.querySelectorAll(".copyt");
for (const copied of copy) {
copied.onclick = function() {
document.execCommand("copy");
};
copied.addEventListener("copy", function(event) {
event.preventDefault();
if (event.clipboardData) {
event.clipboardData.setData("text/plain", copied.textContent);
console.log(event.clipboardData.getData("text"))
};
});
};
/* end*/
</script>
CSS оформление
<style>
/* start */
.copyt{cursor: copy; overflow-wrap: break-word;word-break: break-all;border-radius: 1.8em; border: 1px solid rgba(0,83,249, 0.5);}
/* end*/
</style>
codepen 2
Комментарии