PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Paste und Copy


volti
21.11.2003, 21:26:38
Hallo,
gibt es unter Javascript eine Möglichkeit in oder aus der Zwischenablage Daten (nur Text) zu übernehmen/übertragen?

Hintergrund:
Ich möchte dem User die Möglichkeit bieten, z.B. aus Excel Daten zu markieren, zu kopieren und in eine <form> einzutragen, wobei tabs-getrennte Daten per javascript abgetrennt und in verschiedene Felder übertragen werden sollen.

Wäre schön, wenn diese Daten aus der Zwischenablage automatisch in ein 'hidden' Feld kopiert werden könnten und dann aufgeteilt werden könnten.

sourcecode
22.11.2003, 10:19:50
Es gibt window.clipboardData.setData und window.clipboardData.getData, um den Inhalt der Zwischenablage zu setzen, bzw. auszulesen

window.clipboardData.setData('text', 'das soll in der zwischenablage stehen');

document.form.hiddenfield.value = window.clipboardData.getData('text');

Es muss immer auch angegeben werden, um welche Art von Daten es sich handelt, deshalb steht da auch 'text'

René_M
22.11.2003, 10:30:44
Hi voti,

<html>
<head>

<script language="JavaScript" type="text/javascript">
<!--
function cop() {

with(document.forms[0].elements[0]) {
select();
focus();
}

document.execCommand("copy");

}
//-->
</script>

</head>
<body>

<form>
<textarea cols="60" rows="7" wrap="virtual">Glaube das es nur mit dem Internet Explorer funktioniert.</textarea><br>
<input type="button" value="in Zwischenablage kopieren" onClick="cop();">
</form>

</body>
</html>

volti
22.11.2003, 17:33:57
Vielen Dank euch beiden! Suuuper.
Ziehe sourcecode's Version vor, da sie doch ähnlich meiner bisherigen Programmierung unter Windows ist und hervorragend klappt. Z7umindest unter IE 5.5, den ich gerade hier einsetze.

Wo hast Du das her, wo kann man das nachlesen? Jetzt hätte ich natürlich auch noch die Funktionen wie EmptyClipboard und isClipboardavalaible ganz gern, um die Sache dann rund zu machen.

sourcecode
22.11.2003, 23:39:49
Allerdings bin ich mir nicht sicher, ob das auch klappt, wenn die Daten in der Zwischenablage nicht reiner Text sind (und von Excel kommend sind sie es nicht)

Weiß nicht mehr woher ich das habe, ist schon ne Weile her.

volti
23.11.2003, 10:38:39
Hallo sourcecode,
das klappt schon. Habe ich bereits ausprobiert. Unter Windows sind verschiedene Clipboardformate per Konstante definiert, deswegen ist hier ja auch 'text' anzugegeben, wie Du ja auch schon anmerktest.
Gemischte Markierungen werden meines Wissens von Windows entsprechend behandelt.

Speziell für meine Zwecke überprüfe ich, ob in den kopierten Daten das erste Feld ein bestimmtes Wort enthält und übernehme nur dann die Daten in mein Formblatt. Sonst kommt zuviel Mist rein.

Jetzt würde ich natürlich gerne über eine Abfrage, ob überhaupt Daten in der Zwischenablage sind, mein Einfügen-Icon, welches ich als button verwende, bunt bzw. grau (aktiv,inaktiv) schalten.

Mal sehen, vielleicht finde ich's ja noch.

sourcecode
23.11.2003, 12:24:36
Welche anderen Clipboardformate außer "text" es gibt, die auch mit Javascript erfasst werden können, weiß ich leider nicht. Hast du dazu irgendwo etwas gefunden?

Ansonsten würde ich vielleicht mit window.clipboardData.getData('text').length ermitteln, ob Daten in der Zwischenablage sind.

volti
27.11.2003, 19:52:11
Hallo sourcecode,
bin bisher nicht weiter fündig geworden. Mache das über ...length. Das reicht mir. Andere Formate außer Text (.z.B. Bitmap) will ich auch nicht übernehmen.

Habe mittlerweile an anderer Stelle gehört, dass das ganze eher als Sicherheitslücke als ein Feature angesehen werden könnte.

Aber ich will es ja für eine ganz bestimmte Anwendung im geschlossenen Intranet verwenden. Da geht das schon klar.