Ronny Riedel: Selektieren von Text

Hallo zusammen,

gegeben sei folgender HTML-Code

~~~html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
"http://www.w3.org/TR/html4/strict.dtd">  
<html>  
   <head>  
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
      <title>Namen</title>  
      <style type="text/css">  
         ul {  
            list-style-type: none;  
            font-family: Courier, monospace;  
         }  
      </style>  
      <script type="text/javascript">  
          function selNamen(sID) {  
            alert('to do');  
          }  
      </script>  
   </head>  
   <body>  
      <ul>  
         <li><a href="about:blank" onclick="selNamen('w_namen'); return false;">alle weiblichen Vornamen selektieren</a></li>  
         <li>  
             <ul id="w_namen">  
               <li>Astrid</li>  
               <li>Mandy</li>  
               <li>Maria</li>  
               <li>Melanie</li>  
               <li>Nadine</li>  
               <li>Susann</li>  
            </ul>  
         </li>  
      </ul>  
      <ul>  
         <li><a href="about:blank" onclick="selNamen('m_namen'); return false;">alle männlichen Vornamen selektieren</a></li>  
         <li>  
             <ul id="m_namen">  
                <li>Bernd</li>  
                <li>Hans</li>  
                <li>Klaus</li>  
                <li>Marcus</li>  
                <li>Matthias</li>  
                <li>Oliver</li>  
                <li>Ronny</li>  
            </ul>  
         </li>  
      </ul>  
   </body>  
</html>
~~~  
~~~~~~~~~~~~~~~~~~~~~~~ waste ~~~~~~~~~~~~~~~~~~~~~~  
  
Gibt es eine Möglichkeit, den Text vom inneren <UL>-Tag zu selektieren, wenn ich auf den Link darüber klicke?  
  
Kann ich allgemein Text eines HTML-Dokumentes selektieren, der nicht in einer TextBox bzw. TextArea enthalten ist?  
  
Danke für Tipps & Gruß  
  RR
  1. Hallo,

    gegeben sei folgender HTML-Code

    Gibt es eine Möglichkeit, den Text vom inneren <UL>-Tag zu selektieren, wenn ich auf den Link darüber klicke?

      
      function selNamen(sID) {  
       var strText = "";  
       var arrLI = document.getElementById(sID).getElementsByTagName("li");  
       for(var i = 0; i < arrLI.length; i++) {  
        strText += arrLI[i].firstChild.data + ", ";  
       }  
       alert(strText);  
      }  
    
    

    Grüße
    Thomas

    1. Hallo Thomas,

      ich meinte wirklich, den Text selektieren, so das das ganze dann so aussieht (wenn der User auf den Link klickt):

      Beispiel

      Das mit dem alert('to do'); war einfach nur ein "Merker" :-)

      Gruß
        RR

      1. Moin

        ich meinte wirklich, den Text selektieren, so das das ganze dann so aussieht (wenn der User auf den Link klickt):

        wenn es sich nur ums Aussehen dreht kannst du in der Schleife einfach Schrift- und Hintergrundfarbe ändern.

        function selNamen(sID) {  
           var arrLI = document.getElementById(sID).getElementsByTagName("li");  
           for(var i = 0; i < arrLI.length; i++) {  
            arrLI[i].style.color="white";  
            arrLI[i].style.backgroundColor="blue";  
           }  
          }
        

        Ansonsten müsstest du mal erklären, was sonst noch mit den markierten Namen pasieren soll.

        Gruß
        rfb

        --
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
        (Galileo Galilei)
        1. Moin,

          Ansonsten müsstest du mal erklären, was sonst noch mit den markierten Namen pasieren soll.

          also "normalerweise" sind das nicht nur 2 Listen mit < 10 Einträgen, sondern X Listen mit teilweise > 100 Einträgen. Einige User wollen sich einzelne Listen in z.B. Mails kopieren. Also markieren sie per Maus die Liste und drücken dann die altbekannte Tastenkombi "STRG + C". Nun passiert es gerade bei langen Listen recht häufig, das bei der Selektion  per Hand & Maus über das Ende der entsprechenden Liste hinaus selektiert  wird (da der Browser dann doch ziemlich schnell scrollt). Daher kam die Idee hoch den Text per Klick zu selektieren, damit die User dann nur noch "STRG + C" drücken brauchen, um den selektierten Text in die Zwischenablage zu kopieren.

          Gruß
            RR

          1. Hallo,

            also "normalerweise" sind das nicht nur 2 Listen mit < 10 Einträgen, sondern X Listen mit teilweise > 100 Einträgen. Einige User wollen sich einzelne Listen in z.B. Mails kopieren. Also markieren sie per Maus die Liste und drücken dann die altbekannte Tastenkombi "STRG + C". Nun passiert es gerade bei langen Listen recht häufig, das bei der Selektion  per Hand & Maus über das Ende der entsprechenden Liste hinaus selektiert  wird (da der Browser dann doch ziemlich schnell scrollt). Daher kam die Idee hoch den Text per Klick zu selektieren, damit die User dann nur noch "STRG + C" drücken brauchen, um den selektierten Text in die Zwischenablage zu kopieren.

            "Vergiss es". Irgendwie dachte ich, es ginge um was "ernsthafteres". Du kannst nicht jedem User das Denken und Handeln abnehmen, nur weil er zu schnell mit seinem Browser scrollt oder mal "husch-husch" was markiert anstatt darauf zu achten was er macht.

            Grüße
            Thomas

            1. "Vergiss es". Irgendwie dachte ich, es ginge um was "ernsthafteres". Du kannst nicht jedem User das Denken und Handeln abnehmen, nur weil er zu schnell mit seinem Browser scrollt oder mal "husch-husch" was markiert anstatt darauf zu achten was er macht.

              Grüße
              Thomas

              Hallo,

              also irgendwie scheint es so zu sein, das Text innerhalb von Nicht-Form-Elementen (also "<td>", "<div>", etc.) nicht per JavaScript selektiert werden können. Ich habe zumindest in der Gecko-Referenz bzw. in der MSDN-Libray nichts gefunden.

              Dann muß ich das Problem doch anders lösen
              Gruß
                RR

              PS: <ironie>Ich mag Leute die ein technisches Problem fachlich hinterfragen und dann den Sinn in Frage stellen.</ironie>

              1. Hallo,

                PS: <ironie>Ich mag Leute die ein technisches Problem fachlich hinterfragen und dann den Sinn in Frage stellen.</ironie>

                Ich auch.
                Vor allem weil ich weiss, dass "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning"!

                Aber wenn du unbedingt das haben willst:
                Wie du an den Text rankommst weiss du schon. Erstelle ein Div, darin ein Textarea, füge den Text in die Textarea ein, mache das Div sichtbar, und selektiere nun den Text im Textarea.

                Grüße
                Thomas