|
You last visited: Today at 04:43
Advertisement
Javascript Copy to Clipboard
Discussion on Javascript Copy to Clipboard within the Web Development forum part of the Coders Den category.
07/04/2019, 01:59
|
#1
|
elite*gold: 0
Join Date: Dec 2014
Posts: 106
Received Thanks: 16
|
Javascript Copy to Clipboard
Hallo Community,
ich habe einen Copy to Clipboard script gefunden und wollte diesen nicht nur bei <div> sondern auch bei <textarea> verwenden.
Leider habe ich nicht so viel Erfahrung was das angeht, aber vielleicht kann mir einer helfen
motivate = soll <div> sein und motivatee = textarea
Code:
<script>
var tooltip, // global variables oh my! Refactor when deploying!
hidetooltiptimer;
function createtooltip(){ // call this function ONCE at the end of page to create tool tip object
tooltip = document.createElement('div') || document.createElement('textarea')
tooltip.style.cssText =
'position:absolute; background:black; color:white; padding:4px;z-index:10000;'
+ 'border-radius:2px; font-size:12px;box-shadow:3px 3px 3px rgba(0,0,0,.4);'
+ 'opacity:0;transition:opacity 0.3s'
tooltip.innerHTML = 'Copied!'
document.body.appendChild(tooltip)
}
function showtooltip(e){
var evt = e || event
clearTimeout(hidetooltiptimer)
tooltip.style.left = evt.pageX - 10 + 'px'
tooltip.style.top = evt.pageY + 15 + 'px'
tooltip.style.opacity = 1
hidetooltiptimer = setTimeout(function(){
tooltip.style.opacity = 0
}, 500);
}
function selectElementText(el){
var range = document.createRange() // create new range object
range.selectNodeContents(el) // set range to encompass desired element text
var selection = window.getSelection() // get Selection object from currently user selected text
selection.removeAllRanges() // unselect any user selected text (if any)
selection.addRange(range) // add range to Selection object to select it
}
function copySelectionText(){
var copysuccess // var to check whether execCommand successfully executed
try{
copysuccess = document.execCommand("copy") // run command to copy selected text to clipboard
} catch(e){
copysuccess = false
}
return copysuccess
}
var motivatebox = document.getElementById('motivatebox')
motivatebox.addEventListener('mouseup', function(e){
var e = e || event // equalize event object between modern and older IE browsers
var target = e.target || e.srcElement // get target element mouse is over
if (target.className == 'motivate' || target.className == 'motivatee'){
selectElementText(target) // select the element's text we wish to read
var copysuccess = copySelectionText()
if (copysuccess){
showtooltip(e)
}
}
}, false)
createtooltip();
var copyIt = document.getElementById('button1')
copyIt.addEventListener('click', function(e){
var target = document.getElementById('box1')
if (target.className == 'motivate' || target.className == 'motivatee'){
selectElementText(target) // select the element's text we wish to read
var copysuccess = copySelectionText()
if (copysuccess){
showtooltip(e)
}
}
}, false)
</script>
HTML Code:
<div class="motivate" id="box1">TEST
</div>
HTML Code:
<textarea class="motivatee" id="box1">
TEST2
</textarea>
|
|
|
07/04/2019, 17:01
|
#2
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
|
General Coding -> Web Development
#moved
|
|
|
07/04/2019, 22:54
|
#3
|
elite*gold: 1337
Join Date: Apr 2013
Posts: 6,485
Received Thanks: 3,190
|
Bin ich blind oder selektierst du nirgends den Text? Um execCommand('copy') ausführen zu können, muss die Textarea/das Input einen Fokus haben/selektiert sein.
Schau dir bitte dieses Beispiel an und überlege, wie du das am Besten in dein Beispiel implementieren kannst. Wie bereits gesagt, muss das jeweilige Feld einen Fokus, also el.select(), haben.
Code:
const el = document.createElement('textarea');
el.value = 'Bitte kopiere mich!';
el.readonly = '';
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
Sofern du nicht mit einem Fokus arbeiten möchtest, musst du den selektierten Text in eine Variable speichern und den obigen Code von mir nutzen.
|
|
|
07/08/2019, 09:11
|
#4
|
elite*gold: 4
Join Date: Dec 2010
Posts: 4,733
Received Thanks: 3,870
|
Ich empfehle Dir, Dich in die MDN Dokumentation des "copy event"'s einzulesen, dort gibt es sogar ein Beispiel, welches genau Deinen Bedürfnissen entsprechen sollte:
-
|
|
|
 |
Similar Threads
|
[Release] Clipboard Manager Pro - the ultimative clipboard hero
12/02/2017 - Coding Releases - 0 Replies
https://i.imgur.com/6cACIQ7.png
Clipboard Manager Pro
This application is not translated. Do you want to translate this application in your language? Just contact me here.
Einleitung ]
Da ich nun seit Längerem nichts mehr veröffentlicht habe und seit dem der Uni-Stress richtig angefangen hat, dachte ich mir, veröffentliche ich ein altes,
aber vollständig überarbeitetes Projekt von mir, den Clipboard Manager Pro.
Dieser kommt mit nun einigen neuen Features daher und sollte euch...
|
Clipboard Manager Pro - Halte alles im Blick und manage dein Clipboard!
08/05/2016 - elite*gold Trading - 39 Replies
http://i.imgur.com/bwfSvrd.png
Clipboard Manager Plus
Das Problem kennen doch die meisten von uns: Man kopiert was, um darauf später wieder zugreifen zu können, weil man es braucht oder es wichtig ist, doch dann ist es am Ende doch nicht da, weil man aus Versehen was anderes kopiert hat. Mit dem Clipboard Manager Pro wird dir sowas nie wieder passieren. Der Clipboard Manager Pro merkt sich nicht nur alles, sondern speichert diese auch temporär ab, sodass du auf wirklich alles immer wieder...
|
[B] Clipboard Manager - Copy & Past in neuer Hinsicht! (.Bench Products)
11/27/2015 - elite*gold Trading - 192 Replies
http://i.imgur.com/EciHIt9.png
Gerade noch etwas kopiert und schon ist es weg! Durch Clipboard Manager hast du immer das im Blick, was du kopiert hast und kannst diese mit nur einem Knopfdruck wieder aufrufen. Sehr einfach und recht übersichtlich gehalten. Du kannst direkt aus dem Programm aus, dein Clipboard leeren oder speichern. Kopiere Bilder, Dateien und Texte und rufe sie immer ab - wann du willst!
Clipboard Manager unterstützt nicht nur Text - sondern auch Bilder, Dateien (egal...
|
Clipboard Manager - Copy & Past in neuer Hinsicht!
05/12/2013 - Coding Releases - 33 Replies
http://i.imgur.com/EciHIt9.png
Gerade noch etwas kopiert und schon ist es weg! Durch Clipboard Manager hast du immer das im Blick, was du kopiert hast und kannst diese mit nur einem Knopfdruck wieder aufrufen. Sehr einfach und recht übersichtlich gehalten. Du kannst direkt aus dem Programm aus, dein Clipboard leeren oder speichern. Kopiere Bilder, Dateien und Text und rufe sie immer ab - wann du willst!
Screenshot
http://i.imgur.com/vSJGLqb.png
|
All times are GMT +1. The time now is 04:43.
|
|