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
<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>
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.
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:
-
[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