2 X hintereinander Text via Javascript kopieren

peper

Erfahrenes Mitglied
Moin moin,

ich habe ein kleines Problem. Ich versuche mich daran einen Link zu kopieren bzw. es klappt auch jedoch nur einmal wenn ich den code zweimal hintereinander verwende markiert er keine Textarea ich vermute die Namensgebung. Jedoch weiß ich nicht wo ich dazu das entsprechende wissen bekomme. Ich habe schon versucht einfach die Namen zu verändern jedoch geht mir javascript nicht so einfach von der Hand.
Könnt ihr mich auf den richtigen weg bringen.

Quelle des codes ist http://www.informationsarchiv.net/forum/topic51209.html

LG Lars

HTML:
 <?
      echo "F&uuml;r das Forum: <br>Achtung änderung<br>Link nur noch kopieren und direkt im Forum einf&uuml;gen.";
      echo '<form name="form_html_text" action="(leere referenz!)" method="get">';
      echo '<TEXTAREA rows="1" name="s_html_text" cols="60" readonly>';
      echo '[ IMG]'.$deindomain.$thumb_path.$pic_thumbnail.'[ /IMG]';
      echo '</TEXTAREA>';
    


?>
<br />
<SCRIPT language="JavaScript" type="text/javascript">
<!--
// Text markieren
function highlightext() {
document.form_html_text.s_html_text.select();
document.form_html_text.s_html_text.focus();
}
// Markiertes kopieren
function copytext() {
highlightext();
textRange = document.form_html_text.s_html_text.createTextRange();
textRange.execCommand("RemoveFormat");
textRange.execCommand("Copy");
alert("Der Text wurde in die Zwischenablage kopiert.");
}
// Schaltfläche und Text zuweisen
if ((navigator.appName=="Microsoft Internet Explorer")&&(parseInt(navigator.appVersion)>=4)) {
document.write('<INPUT type="button" value="  Text in Zwischenablage kopieren  " onClick="copytext();">');
} else {
document.write('<INPUT type="button" value="  Text markieren  " onClick="highlightext();">');
}
// -->
</script>  

</form>

  <?
      echo "F&uuml;r das Forum: <br>Achtung änderung<br>Link nur noch kopieren und direkt im Forum einf&uuml;gen.";
      echo '<form name="xform_html_text" action="(leere referenz!)" method="get">';
      echo '<TEXTAREA rows="1" name="z_html_text" cols="60" readonly>';
      echo '[ IMG]'.$deindomain.$thumb_path.$pic_thumbnail.'[ /IMG]';
      echo '</TEXTAREA>';
    


?>
<br />
<SCRIPT language="JavaScript" type="text/javascript">
<!--
// Text markieren
function highlightext() {
document.xform_html_text.z_html_text.select();
document.xform_html_text.z_html_text.focus();
}
// Markiertes kopieren
function copytext() {
highlightext();
textRange = document.xform_html_text.z_html_text.createTextRange();
textRange.execCommand("RemoveFormat");
textRange.execCommand("Copy");
alert("Der Text wurde in die Zwischenablage kopiert.");
}
// Schaltfläche und Text zuweisen
if ((navigator.appName=="Microsoft Internet Explorer")&&(parseInt(navigator.appVersion)>=4)) {
document.write('<INPUT type="button" value="  Text in Zwischenablage kopieren  " onClick="copytext();">');
} else {
document.write('<INPUT type="button" value="  Text markieren  " onClick="highlightext();">');
}
// -->
</script>  

</form>
 
Zuletzt bearbeitet:
Hi,

es nützt nicht, zweimal eine Funktion mit gleichem Name zu definieren. JS verwendet in einem solchen Fall diejenige, die später im Quellcode notiert wurde.

Stattdessen ist es aber möglich, Funktionen Parameter zu übergeben. In deinem Fall könnten dies zum Beispiel der Name des Formulars und der Name der Textarea sein. Über die Methoden getElementsByTagName und elements können nun die erforderlichen Elemente angesprochen werden.

Beispiel:
Code:
F&uuml;r das Forum: <br>Achtung änderung<br>Link nur noch kopieren und direkt im Forum einf&uuml;gen.
<form name="form_html_text" action="(leere referenz!)" method="get">
<TEXTAREA rows="1" name="s_html_text" cols="60" readonly>
Inhalt Area 1
</TEXTAREA>
<br />
<SCRIPT language="JavaScript" type="text/javascript">
<!--
// Text markieren
function highlightext(strForm, strName) {
  document.getElementsByName(strForm)[0].elements[strName].select();
  document.getElementsByName(strForm)[0].elements[strName].focus();
}

// Markiertes kopieren
function copytext(strForm, strName) {
  highlightext(strForm, strName);
  textRange = document.getElementsByName(strForm)[0].elements[strName].createTextRange();
  textRange.execCommand("RemoveFormat");
  textRange.execCommand("Copy");
  alert("Der Text wurde in die Zwischenablage kopiert.");
}

// Schaltfläche und Text zuweisen
if ((navigator.appName=="Microsoft Internet Explorer")&&(parseInt(navigator.appVersion)>=4)) {
  document.write('<INPUT type="button" value="  Text in Zwischenablage kopieren  " onClick="copytext(\'form_html_text\', \'s_html_text\');">');
} else {
  document.write('<INPUT type="button" value="  Text markieren  " onClick="highlightext(\'form_html_text\', \'s_html_text\');">');
}
// -->
</script>
</form>

F&uuml;r das Forum: <br>Achtung änderung<br>Link nur noch kopieren und direkt im Forum einf&uuml;gen.
<form name="xform_html_text" action="(leere referenz!)" method="get">
<TEXTAREA rows="1" name="z_html_text" cols="60" readonly>
Inhalt Area 2
</TEXTAREA>
<br />
<SCRIPT language="JavaScript" type="text/javascript">
<!--
// Schaltfläche und Text zuweisen
if ((navigator.appName=="Microsoft Internet Explorer")&&(parseInt(navigator.appVersion)>=4)) {
  document.write('<INPUT type="button" value="  Text in Zwischenablage kopieren  " onClick="copytext(\'xform_html_text\', \'z_html_text\');">');
} else {
  document.write('<INPUT type="button" value="  Text markieren  " onClick="highlightext(\'xform_html_text\', \'z_html_text\');">');
}
// -->
</script>
</form>

Vielleicht hilft dir das weiter.

Ciao
Quaese
 
Zurück