willie.de: document.execCommand('Copy')

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*

  1. 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

    1. 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

      1. 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

        1. 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

          1. 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

  2. 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