Text mitten im Text einfürgen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text mitten im Text einfürgen

    Hi @ all

    Ich will einen text an der Stelle in einem editierbaren iFrame einfügen, an der der Besucher einen anderen Text makiert habe.

    Um dieses Problem zu lösen habe ich bei SELFHTML nach möglichen Lösungen gesucht jedoch nichts gefunde. Anschließend habe ich nocheinmal im Internet gesucht und bin auf folgenden Script gestoßen:

    PHP-Code:
    function insertNodeAtSelection(wininsertNode
      { 
          
    // get current selection 
          
    var sel win.getSelection(); 

          
    // get the first range of the selection 
          // (there's almost always only one range) 
          
    var range sel.getRangeAt(0); 

          
    // deselect everything 
          
    sel.removeAllRanges(); 

          
    // remove content of current selection from document 
          
    range.deleteContents(); 

          
    // get location of current selection 
          
    var container range.startContainer
          var 
    pos range.startOffset

          
    // make a new range for the new selection 
          
    range=document.createRange(); 

          if (
    container.nodeType==&& insertNode.nodeType==3) { 

            
    // if we insert text in a textnode, do optimized insertion 
            
    container.insertData(posinsertNode.nodeValue); 

            
    // put cursor after inserted text 
            
    range.setEnd(containerpos+insertNode.length); 
            
    range.setStart(containerpos+insertNode.length); 

          } else { 


            var 
    afterNode
            if (
    container.nodeType==3) { 

              
    // when inserting into a textnode 
              // we create 2 new textnodes 
              // and put the insertNode in between 

              
    var textNode container
              
    container textNode.parentNode
              var 
    text textNode.nodeValue

              
    // text before the split 
              
    var textBefore text.substr(0,pos); 
              
    // text after the split 
              
    var textAfter text.substr(pos); 

              var 
    beforeNode document.createTextNode(textBefore); 
              var 
    afterNode document.createTextNode(textAfter); 

              
    // insert the 3 new nodes before the old one 
              
    container.insertBefore(afterNodetextNode); 
              
    container.insertBefore(insertNodeafterNode); 
              
    container.insertBefore(beforeNodeinsertNode); 

              
    // remove the old node 
              
    container.removeChild(textNode); 

            } else { 

              
    // else simply insert the node 
              
    afterNode container.childNodes[pos]; 
              
    container.insertBefore(insertNodeafterNode); 
            } 

            
    range.setEnd(afterNode0); 
            
    range.setStart(afterNode0); 
          } 

          
    sel.addRange(range);
      }; 
    Jedoch habe ich ein verständniss Problem da ich sowelche Befehle wie getRangeAt(0) nicht kenne. Auch die suche bei SELFHTML hat nichts gebracht.

    Was hat es sich mit diesem befehl und generell mit den Range befehlen auf sich (substr(0,pos);, addRange(range); [...])

    Vielen Dank
    Pat-ro
    Zuletzt geändert von ; 17.02.2004, 22:54.

  • #2
    Da kannst du doch wirklich in google suchen..
    Und das meiste ist doch schon beschrieben... wo liegt da das Problem?

    Kommentar


    • #3
      Das Problem liegt darin:

      - dass der oben stehende Script nicht funktioniert
      - Und dass ich gerne aufs genauste verstehen würde was ich da schreibe und dazu langen diese groben erklährungen nicht aus.

      Trotzem danke für die Antwort.

      Kennt jemand ein Tutorial wo diese Befehle nochmal erklärt werden oder weiß jemand welcher "Gruppe" diese Angehören damit man besser suchen kann?

      Thx
      Pat-ro

      Kommentar


      • #4
        - getRangeAt liefert dir die selectierte Bereiche auf dem Browser, in diesem Fall war nur einen Teil selectiert, daher der Index 0.

        - nodeType liefert dir den Typ des Objekt zurück, ist ein readonly property, hat nur 2 Zustände: 1 für element und 3 für text

        der Rest ist doch ziemlich selbst erklärend. Wenn du mehr dazu wissen möchtest, such mal in msdn bei Microsoft (ja, ja ... ) und zwar als Stichwort "Web Development", jedoch nicht die deutsche Site sondern die englische. Na dann viel Spass.

        Kommentar


        • #5
          Danke...

          Danke erst mal.

          Ich habe noch eine bitte:

          Kennt jemand eine gute deutsche Dokumentation zu DOM 1 und DOM 2 in der die Befehle aufgelistet werden???

          (SELFHTML finde ich schwach in der Beschreibung der DOM)

          Thx
          Pat-ro
          Zuletzt geändert von ; 18.02.2004, 19:04.

          Kommentar

          Lädt...
          X