murraene: markierter Text in DIV

Hi,

ich markiere per Klick einen Text in einem DIV-Container, mit dem ich später weiterarbeiten möchte d.h. wenn man jetzt woanders hinklickt soll er markiert bleiben.

  
function selecttxt(objId,start,stop)  
{  
    var range = document.createRange();  
    range.selectNode(document.getElementById(objId));  
    range.setStart(document.getElementById(objId),start);  
    range.setEnd(document.getElementById(objId),stop);  
    window.getSelection().addRange(range);  
}  

Das ist der Code zum markieren. Gibt es eine Möglichkeit das Aufheben der Markierung zu unterdrücken?

  1. Wenn Du sämtliche Clicks abfängst und mit return false; auf deren Events reagierst, sollte das Aufheben der Markierung unterbunden werden.

    Gruß, LX

    --
    RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
    1. Wenn Du sämtliche Clicks abfängst und mit return false; auf deren Events reagierst, sollte das Aufheben der Markierung unterbunden werden.

      Das sind aber ein paar, die ich da abfangen müsste...

      1. Wenn Du sämtliche Clicks abfängst und mit return false; auf deren Events reagierst, sollte das Aufheben der Markierung unterbunden werden.

        Das sind aber ein paar, die ich da abfangen müsste...

        Nein nur einer. document.onclick = function() { return false};

        aber damit verhinderst du nicht, dass ein markierter Text wieder unmarkiert wird. Aber vielleicht geht es, wenn du den Text nach einem click wieder mit JS markierst.

        Struppi.

    2. Wenn Du sämtliche Clicks abfängst und mit return false; auf deren Events reagierst, sollte das Aufheben der Markierung unterbunden werden.

      Gibts da nicht noch eine andere Möglichkeit?

  2. ich markiere per Klick einen Text in einem DIV-Container, mit dem ich später weiterarbeiten möchte d.h. wenn man jetzt woanders hinklickt soll er markiert bleiben.

    function selecttxt(objId,start,stop)
    {
        var range = document.createRange();
        range.selectNode(document.getElementById(objId));
        range.setStart(document.getElementById(objId),start);
        range.setEnd(document.getElementById(objId),stop);
        window.getSelection().addRange(range);
    }

    
    >   
    > Das ist der Code zum markieren. Gibt es eine Möglichkeit das Aufheben der Markierung zu unterdrücken?  
      
    Offensichtlich handelt es sich nicht um eine User-generierte Selektion.  
    Du musst lediglich das identifizierte Element highlighten.  
    (Eine Klasse hinzufügen)  
    Selektion ist da gar nicht im Spiel.  
      
    mfg Beat
    
    -- 
    
    ><o(((°>           ><o(((°>  
    
       <°)))o><                     ><o(((°>o  
    Der Valigator leibt diese Fische
    
    1. Offensichtlich handelt es sich nicht um eine User-generierte Selektion.
      Du musst lediglich das identifizierte Element highlighten.
      (Eine Klasse hinzufügen)
      Selektion ist da gar nicht im Spiel.

      Also, dem User soll die Möglichkeit gegeben werden per onClick-Event einen voreingestellten Bereich markieren zu lassen (daher die Übergabe von Start- und Endpunkt) oder eben selbst im DIV-Container mit der Maus einen Bereich markieren. Die erste Variante kann man ja vermutlich noch mit highlight erreichen, aber die zweite Variante???

      1. Also, dem User soll die Möglichkeit gegeben werden per onClick-Event einen voreingestellten Bereich markieren zu lassen (daher die Übergabe von Start- und Endpunkt) oder eben selbst im DIV-Container mit der Maus einen Bereich markieren. Die erste Variante kann man ja vermutlich noch mit highlight erreichen, aber die zweite Variante???

        Was du anscheinend versuchst, ist eine Multiple-Selection über mehrere Bereiche. Im Firefox ist diese mit Hilfe der Control Taste und der Maus möglich.

        Wenn du dieses Verhalten ohne Controltaste erreichen willst, musst du window.getSelection in einem anderen Objekt speichern. und bei neuerlicher Selektion die bisherige mit Window.getSelektion vereinigen.

        Du musst aber auch eine Methode vorsehen, welche die Selektion ganz aufhebt.

        Wie das im Detail geht, ist mir selber im Moment noch schleierhaft.

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Was du anscheinend versuchst, ist eine Multiple-Selection über mehrere Bereiche. Im Firefox ist diese mit Hilfe der Control Taste und der Maus möglich.

          der Text der markiert wird ist ein Fliesstext in einem DIV-Container. Das markieren mit der Maus an sich klappt ja auch. Was nicht klappt, ist, dass wenn ich einen Text markiert habe und woanders hinklicke der markierte Text markiert bleibt.

          Wenn du dieses Verhalten ohne Controltaste erreichen willst, musst du window.getSelection in einem anderen Objekt speichern.

          das passiert zusammen mit der Selektion

            
          function copySelectedText()  
          {  
              var selectedText=document.getSelection();  
              document.getElementById('text').value=selectedText;  
          }  
            
          
          

          Du musst aber auch eine Methode vorsehen, welche die Selektion ganz aufhebt.

          das geht hiermit

            
          window.getSelection().removeAllRanges();