Kopieren in Zwischenblage

vodo8101

Grünschnabel
Hallo Leute,

ich habe unten anhängenden Programmcode gefunden. Die Textinhalte (alles über den Button) kann an meine Bedürfnisse anpassen. Zur Änderung des Programmcodes habe ich aber leider "0" Anhnung :-(

Was will ich?

Nach der jeweiligen Auswahl in den Optionsfeldern werden mit Klick auf die Button 2 verschiedene Ergebnisse (container 1 / 2) am Ende der Seite neu produziert.

Mein Problem ist, wie kann ich zusätzlich, oder wenn das nicht geht, statt dessen, das Ergebnis in den Zwischenspeicher kopieren.

Aufgrund der Sicherheitseinsellungen kann ich mich allerdings weiter nur in HTML und JS bewegen, Flash, PHP ect. gehen leider nicht. Es reicht auch vollkommen zu, wenn das ganze nur im IE läuft.

Kann mir jemand weiter helfen? Wäre absolut spitze ******

Gruß,
vodo8101


HTML:
<html>
<head>
<title>Test</title>
</head>
<body bgcolor="#D7D7D7">
<font face="Arial">
<div id="container1">
<font face="Arial">
<p>
<form id="form1" name="aa" action="">
<input type="checkbox" name="Art" id="ref1">
<span>Frage 1 <input id="in1" type="text" size="2" value="Text"></span>
<br>
<input type="checkbox" name="Art" id="ref2">
<span>Frage 2
<select id="in2" size="1">
<option value="Test 1">Test 1</option>
<option value="Test 2">Test 2</option>
</select>
</span>
<br>
<input type="checkbox" name="Art" id="ref3">
<span>Frage 3</span>
<br>
<input type="checkbox" name="Art" id="ref4">
<span>Frage 4</span>
<hr>
<p>
<font face="Arial">
<input type="button" value="Ergebnis 1" onclick="javascript:copy1()">
<input type="button" value="Ergebnis 2" onclick="javascript:copy2()">
</font>
</p>
</form>
</div> <!-- container 1 -->
<hr/>
<div id="container2" style="background-color: #FFFFFF; display: none;">
<p id="zev-pre"><font face="Arial">*** Text vorher ***</font></p>
<p id="chk1"><font face="Arial">Auswahl 1 <span id="out1">##</span></font></p>
<p id="chk2"><font face="Arial">Auswahl 2 <span id="out2">##</span></font></p>
<p id="chk3"><font face="Arial">Auswahl 3 </font></p>
<p id="zev-post"><font face="Arial">*** Text nachher ***</font></p>
</div> <!-- container 2 -->
<hr/>
<div id="pastebin" style="background-color: #FFFFFF">
</div> <!-- pastebin -->
<script type="text/javascript">
var rep_count = 2;
var chk_list_length = 3; 
function sync() {
for (var i=1; i <= rep_count; i++) {
var chars = document.getElementById("in" + i);
var sp = document.getElementById("out" + i);
var txt = document.createTextNode(chars.value);
sp.replaceChild(txt, sp.firstChild);
}
}
// will overwrite src with dst
function cp_node (srcId, dstId) {
}
function copy1 () {
var str = "";
var list = document.createElement("span");
var form1 = document.getElementById("form1");
var pastebin = document.getElementById("pastebin");
var inp = form1.getElementsByTagName("input");
for (var i=0; i < inp.length; i++) {
if (inp[i].getAttribute("type") != "checkbox" ||
inp[i].checked == false)
continue;
var listpoint = document.createElement("p");
var str = "";
var sp = inp[i].nextSibling;
while (sp.nodeType != 1) // element node ... <span>
sp = sp.nextSibling;
for (var j=0; j < sp.childNodes.length; j++) {
var txt = sp.childNodes[j];
if (txt.nodeType == 3) // text node
str += txt.data;
else if (txt.nodeType == 1 && txt.value != null)
str += txt.value;
}
var txtnode = document.createTextNode(str);
listpoint.appendChild(txtnode);
list.appendChild(listpoint);
}
 
if (pastebin.firstChild == null)
pastebin.appendChild(list);
else
pastebin.replaceChild(list, pastebin.firstChild);
}
function copy2() {
sync();
var list= document.createElement("span");
var pastebin = document.getElementById("pastebin");
list.appendChild(document.getElementById("zev-pre").cloneNode(true));
for (var i=1; i <= chk_list_length; i++) {
if (document.getElementById("ref" + i).checked == true) {
var dolly = document.getElementById("chk" + i).cloneNode(true);
list.appendChild(dolly);
}
}
 
list.appendChild(document.getElementById("zev-post").cloneNode(true));
if (pastebin.firstChild == null)
pastebin.appendChild(list);
else
pastebin.replaceChild(list, pastebin.firstChild);
}
//var Erster = document.getElementById("derText").childNodes[0].nodeValue;
//document.write("Anzahl Kindknoten: <b>" + Anzahl + "<\/b><br>");
//document.write("Wert des ersten Kindknotens: <b>" + Erster + "<\/b><br>");
</script>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
erstens bist du hier im falschen Unterforum, das hier betrifft die Programmiersprache Java, dein Problem betrifft JavaScript, das ist ein großer Unterschied.
Zweitens, die Antwort ist, es geht nicht, JavaScript läuft aus Sicherheitstechnischen Gründen in einer Art Sandbox und hat keinen Zugriff auf den Client. Mir fällt spontan auch keine Andere Möglichkeit ein, so etwas möglich zu machen, wie das mit Flash ist weiß ich nicht, damit kenne ich mich nicht aus, aber ich kann mir nicht vorstellen, dass es damit geht.

Gruß
Matt
 
Hab mich auch bei HTML und Javascript eingeschrieben, weiß auch nicht wer mich nach JAVA verschoben hat?

Geht dann vllt. eine andere Möglichkeit?

Kann der erzeugte Text in "pastebin" vllt. mit einer weiteren Funktion / Button ausgelesen und in die Zwischenablage kopiert werden?
 
Achso, dann wäre es gut, wenn der wieder zurückgeschoben wird :)
Wie schon gesagt, jeglicher Code im Browser läuft ziemlich abgeschottet, oder sollte es zumindest.
Die einzige Möglichkeit, die mir auf Anhieb einfällt, wäre eine Client-Seitige unabhängige Software, die den Text kopiert, z.B. indem es den Speicher durchforstet o.Ä.. Das ist aber leider außerhalb des Rahmens eines Web-Entwicklers.
Da ich weiß das Java auf die Zwischenablage zugreifen kann, habe ich eben kurz gegooglet, ob es auch in Java-Applets geht. Da geht es nur, wenn dein Applet mit einem offiziellen Zertifikat signiert wurde, und auch das ist nicht zu 100% sicher.
Die einzige Schnittstelle wo es definitiv gehen soll, ist ActiveX, aber die wird aus offensichtlichen Gründen nicht sehr unterstützt.

Gruß
Matt
 
Zurück