5.6k Aufrufe
Gefragt in Webseiten HTML von mrsmith Mitglied (289 Punkte)
Hallo,

ich möchte mit einem Button im IE einen hinterlegten Text in meine Zwischenablage kopieren. Das funktioniert mit diesem Quelltext auch wunderbar.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Adobe GoLive" />
<title>Zusatztexte</title>
<link href="../../Documents/Neue Web-Site/web-content/css/basic.css" rel="stylesheet" type="text/css" media="all" />

</head>
<script type="text/javascript">
//<![CDATA[XC
function clpSet() {
window.clipboardData.setData("Text", document.name.text.value);
}
//]]>
</script>
<body>
<form name="name" action="(EmptyReference!)">
<input type="button" value="COPY" onclick="clpSet();" />
<input type="hidden" name="text" value="Text in der Zwischenablage" />
</form>
<p></p>
</body>
</html>

Mein Problem. Ich kann diesen Button noch kopieren. Sprich ich brauche so 20 Buttons mit verschieden hinterlegten Texten. Aber er kopiert mit etweder denn Quelltext direkt oder nur misst.

Wenn mir jemand helfen kann währe ich echt dankbar.
Danke

6 Antworten

0 Punkte
Beantwortet von
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Zusatztexte</title>
<script type="text/javascript">
//<![CDATA[XC
function clpSet(von_wo) {
window.clipboardData.setData("Text", document["formular"][von_wo].value);
}
//]]>
</script>
</head>
<body>
<form name="formular" action="(EmptyReference!)">
<input type="button" value="COPY 1" onclick="clpSet("text1");" />
<input type="hidden" name="text1" value="1. Text in der Zwischenablage" />
<input type="button" value="COPY 2" onclick="2. clpSet("text2");" />
<input type="hidden" name="text2" value="Text in der Zwischenablage" />
<input type="button" value="COPY 3" onclick="clpSet("text3");" />
<input type="hidden" name="text3" value="3. Text in der Zwischenablage" />
</form>
</body>
</html>
0 Punkte
Beantwortet von mrsmith Mitglied (289 Punkte)
Hallo,
danke erstmal.
Beim öffnen dieser Seite sagt mit mein IE das es einen Skript fehler Gab in Zeile 17, 18, 21.
Was geht da falsch habe mal versucht in Zeile 18 bei "onclick="2. clpSe" die 2 zu entfernen.
Hilft auch nichts.
Weiß noch jemand Rat`?

Danke
0 Punkte
Beantwortet von
das 2. ist in der Tat verschoben.

Ansonsten sind IE-Fehlermeldungen in der Regel einfach nichtssagend. Sonst wären die doppelten " als eigentlicher Fehler aufgefallen.
Versuch bei der Gelegenheit mal auf form-Element und name-Attribut zu verzichten:

...
<script type="text/javascript">
//<![CDATA[XC
function clpSet(von_wo) {
window.clipboardData.setData("Text", document.getElementById(von_wo).value);
}
//]]>
</script>
</head>
<body>
<input type="button" value="COPY 1" onclick="clpSet('text1');" />
<input type="hidden" id="text1" value="1. Text in der Zwischenablage" />
<input type="button" value="COPY 2" onclick="clpSet('text2');" />
<input type="hidden" id="text2" value="2. Text in der Zwischenablage" />
<input type="button" value="COPY 3" onclick="clpSet('text3');" />
<input type="hidden" id="text3" value="3. Text in der Zwischenablage" />
</body>
</html>
0 Punkte
Beantwortet von mrsmith Mitglied (289 Punkte)
Super es klappt alles wunderbar.
Danke hast mir meinen Arbeitsaltag echt erleichtert.
0 Punkte
Beantwortet von
naja, wesentlich sinnvoller erachte ich übrigens diese Variante, die ohne hidden-inputs und ohne onclick-Attribute auskommt:
...
<script type="text/javascript">
//<![CDATA[XC
window.onload=function(){
var x=document.getElementsByTagName("input");
for (var i=0;i<x.length;i++) {
x.onclick=function(){
window.clipboardData.setData("Text", this.getAttribute("data-text"));
}
}
}
//]]>
</script>
</head>
<body>
<input type="button" value="COPY 1" data-text="1. Text in der Zwischenablage" />
<input type="button" value="COPY 2" data-text="2. Text in der Zwischenablage" />
<input type="button" value="COPY 3" data-text="3. Text in der Zwischenablage" />
</body>
</html>

Die data-Attribute sind zwar erst ab HTML5 valide, ich kenne aber keinen aktuellen Browser (incl. IE), der das so nicht akzeptiert.
0 Punkte
Beantwortet von
typischer Flüchtigkeitsfehler: die Zeile muss lauten

x[i].onclick=function(){
...