document.execCommand('Copy')
willie.de
- javascript
ein hallo ins forum!
ich melde mich mit nem kleinen problem:
ich möchte, dem betrachter meiner seite die option zur verfügung stellen, die kontaktemailadresse auf klick in die zwischenablage zu kopieren. wie kann ich an
document.execCommand('Copy')
eine zeichenkette/variable direkt übergeben?
nach den bereits geposteten beiträge könnte ich den text markieren und dann kopieren. ich möchte es aber direkter ;)
DANKE für eure hilfe!
willie *jemandderkeineahnunghat*
document.execCommand('Copy')
Äh, das ist doch eh wieder so ein M$-IE-only-murks. Aber das wird dir weiterhelfen:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/execcommand.asp
Gruß Herbalizer
document.execCommand('Copy')
Äh, das ist doch eh wieder so ein M$-IE-only-murks.
jajaja ;)
Aber das wird dir weiterhelfen:
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/execcommand.asp
wenn ich alles richtig verstanden hab, ist das wirklich nur zum kopieren von _selektiertem_ text gedacht: "Copies the current selection to the clipboard." schade!
Gruß Herbalizer
danke! willie
Hallo willie,
wenn ich alles richtig verstanden hab, ist das wirklich nur zum kopieren von _selektiertem_ text gedacht: "Copies the current selection to the clipboard." schade!
Du kannst das mit einer Textrange machen:
sel=document.body.createTextRange();
sel.moveToElementText(document.getElementById('myDiv'));
sel.execCommand('Copy');
<div id=myDiv>...der zu kopierende Text...</div>
Grüße, Stefan
sel=document.body.createTextRange();
sel.moveToElementText(document.getElementById('myDiv'));
sel.execCommand('Copy');
<div id=myDiv>...der zu kopierende Text...</div>
funxt bestimmt. aber ich wollte den text _nicht_ im dokument stehen haben, sondern als (zerstückelte) variable zuweisen. es geht um ne emailadresse und sozusagen um spam-abwehr...
hab mir jetzt so geholfen, dass der input-tag absolut und außerhalb der seite plaziert ist. der value wird erst beim onLoad (zerstückelt) zugewiesen.
für interessierte:
<body onLoad='document.formular.email.value="das" + "istdie@email" + "adres.se"'>
<input type="button" value="em@iladresse kopieren" onClick="document.formular.email.select(); document.formular.email.focus(); document.execCommand('Copy');">
<input type="button" value="nothing" name="email" style="position:absolute; top:-10000px;">
</body>
Grüße, Stefan
grüße zurück :D
willie
Hallo willie,
sel=document.body.createTextRange();
sel.moveToElementText(document.getElementById('myDiv'));
sel.execCommand('Copy');
<div id=myDiv>...der zu kopierende Text...</div>
funxt bestimmt. aber ich wollte den text _nicht_ im dokument stehen haben, sondern als (zerstückelte) variable zuweisen. es geht um ne emailadresse und sozusagen um spam-abwehr...
Ein direkter Weg, eine Variable in die Zwischenablage zu bringen, wäre mir nicht bekannt. Es gibt aber den Umweg über vorübergehend ins Dokument eingefügte Elemente, in die dann die Variable geschrieben wird.
Siehe: http://groups.google.com/groups?hl=de&lr=lang_de&selm=82qs4q%24su9%241%40crusher.de.colt.net
Aber die Emailadresse dann nur für IE, das solltest du dir wirklich noch mal überlegen...
Grüße, Stefan
Hallo.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>copy to clipboard</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head><body>
<form action="" name="clip"><input type="hidden" name="board" value=""></form>
<script type="text/javascript">
<!--
function ctcb(ttc) // copy to clipboard (text to copy)
{
document.clip.board.value = ttc;
document.clip.board.select();
document.clip.board.createTextRange().execCommand("Copy");
}
//-->
</script>
<a href="#" onclick="ctcb('norbert' + '@' + 'tenorbert' + '.' + 'de')">copy "norbert at tenorbert dot de" to clipboard</a>
</body></html>
Gruß
Norbert