Ankündigung

Einklappen
Keine Ankündigung bisher.

innerHTML hat immer führendes leerzeichen

Einklappen

Neue Werbung 2019

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

  • innerHTML hat immer führendes leerzeichen

    Hallo Forum

    Bin seit einiger Zeit an einer App die auch das macht was sie soll.
    Leider stöhren einige optische kleinigkeiten.
    Ich aktualisiere den Bildschirm mit document.getElementById(strZiel).innerHTML. Dabei wird immer ein störendes Leerzeichen mitgeliefert das dann einen unnötigen Zeilenumbruch bewirkt.
    Habe mit ein Skript geschriben das eigentlich den Auftrag sauber erfüllt bis auf das Leerzeichen.
    Habe ich einen Fehler eingebaut den ich nicht sehe? Besten Dank für ein kurzes drüberschauen.
    Code:
    function searchFor(suchbegriff, feld, str_datwork, strZiel="content", param_a= "suchbegriff", param_b="feld")
        {
            var xmlHttp = null;
            // Mozilla, Opera, Safari sowie Internet Explorer 7
            if (typeof XMLHttpRequest != 'undefined')
                {
                    xmlHttp = new XMLHttpRequest();
                }
            if (!xmlHttp)
                {
                    // Internet Explorer 6 und älter
                    try {
                        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch(e) {
                        try {
                            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch(e) {
                            xmlHttp  = null;
                        }
                    }
                }
            // Wenn das Objekt erfolgreich erzeugt wurde
            if (xmlHttp)
                {
                    var url = escape(str_datwork);
                    if (feld=="")
                        {
                            var params = param_a+"="+suchbegriff;
                        }
                    else
                        {
                            var params = param_a+"="+suchbegriff+"&"+param_b+"="+feld;
                        }
                    xmlHttp.open("POST", url, true);
    
                    //Headerinformationen für den POST Request
                    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                    xmlHttp.onreadystatechange = function () {
                        if (xmlHttp.readyState == 4) {
                            // Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
                            document.getElementById(strZiel).innerHTML = xmlHttp.responseText;
                        }
                    };
                    xmlHttp.send(params);
                }
            }


  • #2
    Was steht denn in responseText?

    Kommentar


    • #3
      Textknoten der nur leerraum enthält;

      Kommentar


      • #4
        Im schlimmsten Fall (falls sich Fehler nicht findet, oder ein Bug, etc..) ein trim() drauf? https://developer.mozilla.org/de/doc...ts/String/Trim
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Zitat von Marlon Beitrag anzeigen
          Textknoten der nur leerraum enthält;
          Was ist ein "Leerraum"?

          Kommentar


          • #6
            Whitespace als Leerzeichen darzustellen ist eine Parsing-Direktive von HTML. Wenn du das nicht willst, sollte dein Response keinen Whitespace liefern, oder du fixt es halt mit trim().

            Kommentar


            • #7
              Besten Dank für eure Hilfe.
              Das mit dem Trim() habe ich bereits probiert. Leider ohne Erfolg.
              Code:
              function searchFor(suchbegriff, feld, str_datwork, strZiel="content", param_a= "suchbegriff", param_b="feld")
                  {
                      var xmlHttp = null;
                      var str_arbeiterdatei = str_datwork;
              
                      // Mozilla, Opera, Safari sowie Internet Explorer 7
                      if (typeof XMLHttpRequest != 'undefined')
                          {
                              xmlHttp = new XMLHttpRequest();
                          }
                      if (!xmlHttp)
                          {
                              // Internet Explorer 6 und älter
                              try {
                                  xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
                              } catch(e) {
                                  try {
                                      xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
                                  } catch(e) {
                                      xmlHttp  = null;
                                  }
                              }
                          }
                      // Wenn das Objekt erfolgreich erzeugt wurde
                      if (xmlHttp)
                          {
                              var url = escape(str_arbeiterdatei.trim());
                              if (feld=="")
                                  {
                                      var params = param_a+"="+suchbegriff;
                                  }
                              else
                                  {
                                      var params = param_a+"="+suchbegriff+"&"+param_b+"="+feld;
                                  }
                              xmlHttp.open("POST", url, true);
              
                              //Headerinformationen für den POST Request
                              xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                              xmlHttp.onreadystatechange = function () {
                                  if (xmlHttp.readyState == 4) {
                                      // Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
                                      document.getElementById(strZiel).innerHTML = xmlHttp.responseText;
                                  }
                              };
                              xmlHttp.send(params);
                          }
                      }

              Kommentar


              • #8

                HTML-Code:
                // Internet Explorer 6 und älter
                Wirklich? Räum da mal auf.

                Kommentar


                • #9
                  Aber was steht jetzt in responseText drin? Ist das jetzt wieder so ein Thread, wo man 20mal nachfragen muss, bis man die richtige Antwort bekommt? *seufz*

                  Kommentar


                  • #10
                    Eine vereinfachte Lösung kann wie folgt aussehen, teste damit einfach mal rum...

                    PHP-Code:
                    <?php
                    $action 
                    $_POST['action'] ?? null;
                    if (
                    $action){
                      if (
                    $action==='getData') echo 'von PHP gesendet!';
                      exit;
                    }
                    ?><!DOCTYPE html>
                    <html lang=de>
                      <meta charset=UTF-8>
                      <title>Document</title>
                      <p id=test>  
                      <script>
                        var myForm = new FormData()
                        myForm.append('action', 'getData')
                        var request = new XMLHttpRequest()
                        request.onload = e => test.innerHTML = request.responseText  
                        request.open('post', '')
                        request.send(myForm)
                      </script>
                    Unter Chrome -> Weitere Tools -> Entwicklertools kannst Du Dir alles anschauen...

                    response.PNG

                    Kommentar


                    • #11
                      Lass dir das erste Zeichen doch mal HEX ausgeben. Ist es evtl ein geschütztes Blank? Was zeigt der Debugger?

                      Kommentar

                      Lädt...
                      X