Webstatt.org - Community seit 2006 - 2012 (2024?)

kopieren mit dynamischen textfeldern

user-186
19.09.2006 05:19

hallo

um via klick einen text in die zwischenablage zu kopieren nutze ich folgendes script:

<script type="text/javascript">
<!--
function TextKopieren(FeldID)
{
document.getElementById(FeldID).focus();
document.getElementById(FeldID).select();
if(document.all)
{
Bereich=document.getElementById(FeldID).createTextRange();
Bereich.execCommand("Copy"zwinkern;
}
}
//-->
</script>


und dann das:
<input name="k_id" type="text" value="<? echo $row['k_id']; ?>" size="76" class="form"/><a href="javascript:TextKopieren(k_id);">kopieren</a>


funktioniert,solange es ein textfeld ist, problemlos.
nun hab ich aber mehrere dieser textfelder, die dynamisch -je nach anzahl datensätze in der DB - generiert werden.

kann mir jemand sagen, wie ich den javascript-link (TextKopieren) ändern muss, damit das klappt?
bin für tipps dankbar!

Avatar user-253
19.09.2006 09:16

Hi,

vorneweg: Soweit ich weiß funktioniert diese ganze execCOmmand Sache nur im IEX oder?

Zu deinem Problem:
Ohne Umwege kann man es nicht, allerdings ist der Umweg nicht sehr umständlich:

1) Du brauchst ein verstecktes Textfeld
2) Den auszuwählenden Text setzt du in dem Textfeld zusammen
3) Du wählst alles in dem Textfeld aus (element.select())
4) Du kopierst den Text (createTextRange().execCommand("Copy"zwinkern)

Allgemein ist es problematisch, dass dieses wirklich nur auf Textfelder (oder genauer TextRange Elemente) anwendbar ist - nicht auf einen String.
Du musst also ein Feld mit dem auszuwählenden Text simulieren, um den Text in die Zwischenablage zu kopieren

user-186
19.09.2006 09:26

ouhhh..ok, dachte es ginge etwas simpler.
markieren, copy-paste wird wohl meine lösung aussehen lächeln

aber danke dir für's echo.