copy und paste per button

3ul3-daniel hat gesagt.:
es funktioniert jetzt alles, aber wenn ich das textfeld unsichtbar machen will, funktioniert die function nicht mehr! warum?

Schau mal in deinem IE unten rechts. Da steht meistens eine Info wenn ein Problem in einem Script festgestellt wurde.

Wenn du das Objekt versteckst / unsichtbar machst, kann das Skript dem Objekt kein Fokus geben. War bei mir jedenfalls so.

3ul3-daniel hat gesagt.:
und kann javascripz die variablen weiter geben?
in txt dateien speichern oder so? oder besser noch verschicken?

Du kannst es in ein Cookie speichern. Wenn du es Global benötigst.
Wie meinst du verschicken?

Gruss,
MArc
 
HI^^
Und wie bekomme ich mit folgendem Quellcode hin:

PHP:
<html>
<head>

</head>
<body>
<input type="button" value="Copy" onClick="document.formu.txt.focus();document.execCommand('Copy');">
<input type="button" value="Paste" onClick="document.formu.txt.focus();document.execCommand('Paste');">
<br><br>
<form name="formu">
<textarea cols=60 rows=12 name="txt">Edt me please! bla bla bla  buh buh</textarea></form>

</body>
</html>
dass wenn ich auf dein Button Copy klicke einfach ein text "to clip board" kopiert wird, der unsichtbar irgendwo im Quellcode steht (also nicht ausgegeben wird)
Also das ganze nicht an eine Textarea gebunden ist.

Und was das Einfügen betrifft, hat jemand einen Code, der das "to clip board" kopierte in einen Input-Tag (<input typ=text...>) einfügt (natürlich bei Button paste-klick) und dabei den alten Inhalt des Input-Tags überschreibt?

Gruß Sturmrider
 
*nickt* stimmt, entschuldigung
PHP:
<input type=button value=kopieren onclick=window.clipboardData.setData('SessionID','Dieser Text to Clipboard');>
allerdings habe ich immernoch keine Ahnung, wie ich mit getData die Daten aus dem clipboard in einen bestimmten <input typ=text...> laden kann :(
Hinzu kommt, dass ich nicht weiß wie man den schon vorhandenen Inhalt des <input typ=text...> löschen und durch paste des clipboard-Inhalts ersetzen kann
Ich ersuche nocheinmal eure Hilfe ^^

Gruß Sturmi
 
Erstmal: der 1 Parameter bei getData() und setData() definiert das Format der Daten in der Zwischenablage...in deinem Fall muss es jeweils "Text" sein....und nicht SessionID.

Den Inhalt eines Textfeldes änderst/leerst du, indem du auf sein value-Attribut zugreifst...
leeren:
Code:
document.formularname.feldname.value='';

Da der ursprüngliche Inhalt sowieso entfernt wird, wenn du das value-Attribut änderst, brauchst du vorher aber nicht leeren...einfach zuweisen:
Code:
document.formularname.feldname.value=window.clipboardData.getData('Text');

Das ganze (Zugriff auf die Zwischenablage) ist aber in deinem Fall nicht notwendig, und ohnehin problematisch...
  • Es funktioniert nur im IE, und dort auch nur je nach Sicherheitseinstellung
  • Du greifst damit auf Daten ausserhalb des Browsers zu. Schlimmstenfalls könntest du damit wichtige Daten des Benutzers vernichten, welche er gerade im clipboard hat... man könnte dich deswegen vielleicht sogar auf Schadensersatz verklagen.

Definiere schlicht eine Variable... diese kannst du lesen und schreiben wie du willst, und das funktioniert in allen Browsern.
 
k, danke für die Infos (es funktioniert, aber ich werde wohl besser auf deinen Rat hören, auch wenns nur für ein AdminMenü gedacht war)
Das mit der Variable funktioniert in meinem Fall so leider kaum bzw. wäre mordsmäßig aufwendig.
Gibt es eine möglichkeit <input type=text ...> immer als markiert und (wenn möglich) als uneditierbar anzuzeigen? (so, dass man selber mit rechtsklick kopieren kann, wenn man möchte)
Für dieses getData vom Clipboard, gibt es da eine Möglichkeit die in allen Browsern funktioniert? (aus dem Cash laden dürfte ja kein sicherheitsrisiko darstellen oder?)

Gruß Sturmrider
 
Warum wäre das mit der Variablen ein Mordsaufwand?
Im Clipboard hast du auch nicht mehr als 1 String...ich seh da keine Probleme.

In anderen Browsern hast du keinen Zugriff auf die Zwischenablage.

Zu dem input: über das Attribut "readonly" bewirkst du, dass man es nur lesen kann.
Immer selektiert sein kann es nicht...es sollte aber reichen, wenn es selektiert ist, wenn man hineinklickt.
Code:
<input readonly onclick="this.select()" value="blablubb">
 
Du hast recht, normalerweise würde es gehen (und wohl auch in meinem Fall, allerdings würde das bewirken, dass ich meine PHP-Script ziemlich stark umschreiben müsste...außerdem würde so die Dynamik, alles auf einer Seite erledigen zu können verloren gehen ;) ) Nein, ich denke ich weiß was ich mache ^^ Danke trotzdem für dein Bemühen!

Noch eine kurze Frage zum Abschluss, ist es möglich das wenn man in das Feld:
<input readonly onclick="this.select()" value="blablubb">
mit der rechten Maustaste klickt, dass es dann auch schon komplett selektiert wird?

Gruß Sturmrider
 
Zurück