[gelöst] window.getSelection() -> html-code

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

  • #16
    Hi, danke! Ich habs grad auf einem frisch installierten ff 3.5.3 probiert...geht ebenfalls nicht. Wirklich genauso markiert...ich hänge mal ein screenshot an:

    Kommentar


    • #17
      Zitat von TriphunEM Beitrag anzeigen
      Ich habs grad auf einem frisch installierten ff 3.5.3 probiert...geht ebenfalls nicht.
      Und wo kommt bei der Clone-Variante die Fehlermeldung?
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #18
        Ich bekomm die Clone-Variante nicht so richtig hin, weiß nicht so richtig wie das zusammen spielt...Könntest du mir das im Code vielleicht umschreiben???

        Kommentar


        • #19
          Zitat von TriphunEM Beitrag anzeigen
          Ich bekomm die Clone-Variante nicht so richtig hin, weiß nicht so richtig wie das zusammen spielt...Könntest du mir das im Code vielleicht umschreiben???
          Ich hab doch schon Code gepostet. Wenn das immer noch nicht reicht, weiß ich auch nicht.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #20
            Oh, hab ich übersehen. Ja damit geht es. Allerdings hab ich einen komischen effekt, da die markierung im Browser nicht mehr so einfach weggeht, irgendwie komisch. Hier jetzt mal die Funktion:
            PHP-Code:
                    function getSelectedText() {
                        var 
            strHtml "";
                        if (
            document.selection && document.selection.createRange) {
                            
            strHtml = (document.selection.createRange()).htmlText;
                        } else if (
            window.getSelection) {
                            var 
            strSelection window.getSelection();
                            for(var 
            a=0a<strSelection.rangeCounta++) {
                                var 
            strSpan document.createElement("span");
                                var 
            intRange strSelection.getRangeAt(a);
                                var 
            objDocFragment intRange.cloneContents();
                                
            intRange.detach();
                                var 
            objWrapper document.createElement("div");
                                
            objWrapper.appendChild(objDocFragment);
                                
            strHtml+= objWrapper.innerHTML;
                            }
                            
            strSelection.removeAllRanges();
                        }
                        
            strHtml strHtml.replace(/\r\n|\n|<br>|<br\/>/g,"<br />");
                        return 
            strHtml;
                    } 
            Was ich mach will hab ich oben schon gesagt. Ich will den Text dann via Ajax an ein PHP-Skript schicken, welches diesen dann mit den HTML-Formatierungen in der DB speichert. Kann man das etwa noch besser machen?

            Kommentar


            • #21
              Zitat von TriphunEM Beitrag anzeigen
              da die markierung im Browser nicht mehr so einfach weggeht
              Falls du damit meinst, dass du die Auswahl aufheben willst, das hab ich auch nicht hinbekommen, trotz Benutzung aller diesbezüglich relevanter Methoden.

              Ich vermute mal, dass deine Variablen mit Typpräfix benannt sein sollen. Da aber weder intRange ein int ist noch strSelection ein string, hab ich mir mal erlaubt, das zu korrigieren.

              Die auskommentierte Zeile macht keinen Sinn, nicht einmal, wenn der fehlende Backslash durch die Forensoftware verursacht wurde. Umbrüche willst du nicht durch br ersetzen, weil sonst aus
              HTML-Code:
              	<p>
              		Hallo Welt, heute will ich euch mal was über
              		<a href="http://de.wikipedia.org/wiki/Brummkreisel">Brummkreisel</a>
              		verraten...
              	</p>
              das wird:
              HTML-Code:
              	<p><br />
              		Hallo Welt, heute will ich euch mal was über<br />
              		<a href="http://de.wikipedia.org/wiki/Brummkreisel">Brummkreisel</a><br />
              		verraten...<br />
              	</p><br />
              Und das ist mit Sicherheit nicht, was du willst. (Die Zeilenumbrüche wären eigentlich ganz weg, aber aus Gründen der Lesbarkeit habe ich sie drin gelassen.)

              Jetzt könntest du noch argumentieren, dass du <br> durch <br /> ersetzen willst, aber das ist auch nicht notwendig, weil du mit DOM-Methoden gearbeitet hast und nicht mit direkter HTML-Manipulation, so dass alle <br>s ohnehin schon zu <br /> wurden.

              Hier der Code:

              Code:
              		function getSelectedText() {
              			var strHtml = "";
              			if (document.selection && document.selection.createRange) {
              				var objRange = document.selection.createRange();
              				strHtml = objRange.htmlText;
              				objRange.collapse(true);
              			}
              			else if (window.getSelection) {
              				var objSelection = window.getSelection();
              				for(var a=0; a < objSelection.rangeCount; a++) {
              					var objRange = objSelection.getRangeAt(a);
              					var objDocFragment = objRange.cloneContents();
              					var objWrapper = document.createElement("div");
              					objRange.collapse(true);
              					objRange.detach();
              					objWrapper.appendChild(objDocFragment);
              					strHtml += objWrapper.innerHTML;
              				}
              				objSelection.removeAllRanges();
              				objSelection.collapse(document.body, 0);
              			}
              			//strHtml = strHtml.replace(/rn|n|<br>|<br/>/g,"<br />");
              			return strHtml;
              		}
              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #22
                Ich danke dir! Wenn das Problem mit der markierung nicht wäre, wäre jetzt alles perfekt! aber so gehts auch erstmal!

                Lg

                Kommentar

                Lädt...
                X