Ankündigung

Einklappen
Keine Ankündigung bisher.

IE9 "undefined" error -> Debuggen

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

    IE9 "undefined" error -> Debuggen

    Hallo,

    auch wenn ich vermutlich nerve
    Ich hab heute den IE9 installiert und versucht die CV zu debuggen um zu sehen wo es hängt.

    Das kam dabei raus:
    Code:
    SCRIPT5007: Für die Eigenschaft "replace" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert 
    templateengine.js, Zeile 326 Zeichen 9
    SCRIPT5022: DOM Exception: HIERARCHY_REQUEST_ERR (3) 
    jquery.js, Zeile 6371 Zeichen 6
    Beide Fehler bringen mich nicht weiter.
    Ich such zum Fehler 2 nochmal im www. Fehler1 geht nicht da ich ChrisM´s Code nicht begreife.

    Ich will es nicht ernsthaft im IE am Desktop Rechner laufen lassen, eher am WinPhone (darüber scheiden sich die Geister aber Android geht mir derzeit gewaltig auf den Keks).

    Gruß Volker

    #2
    Zitat von vlamers Beitrag anzeigen
    Code:
    SCRIPT5007: Für die Eigenschaft "replace" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert 
    templateengine.js, Zeile 326 Zeichen 9
    SCRIPT5022: DOM Exception: HIERARCHY_REQUEST_ERR (3) 
    jquery.js, Zeile 6371 Zeichen 6
    Beide Fehler bringen mich nicht weiter.
    Ich such zum Fehler 2 nochmal im www. Fehler1 geht nicht da ich ChrisM´s Code nicht begreife.
    Die Stelle zu kennen, die den Fehler wirft ist schon mal gut - aber für ein "remote Debugging" natürlich etwas mager...

    Was ich mir vorstellen kann: text wird in Zeile 316 gesetzt:
    Code:
      var text = this.textContent;
    könnte es sein, dass das schief läuft und text damit undefined ist?

    Falls ja, dann müsste man schauen, wie man anders an den Inhalt kommt...
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Sry mehr hab ich nicht aus dem IE raus betteln können. Hab gerade raus gefunden das F12 im IE die einfachere alternative ist
      Werde heut Abend weiter schauen.
      Gruß Volker

      Sent from my GT-I8350 using Board Express

      Kommentar


        #4
        Das ist definitiv eins der Probleme. IE kennt textContent nicht. Da heisst es innerText, was aber z.B. der FF nicht kennt. Vielleicht macht es Sinn für sowas Wrapper-Funktionen zu schreiben, die nach erkannten Browser dann das richtige liefern.

        Mir war das zu lästig, deswegen hab ichs aufgegeben.

        Gruss,

        der Jan
        KNX, DMX over E1.31, DALI, 1W, OpenHAB, MQTT

        Kommentar


          #5
          Ist vermutlich zu einfach gedacht:

          wenn ich "textContent" durch "innerText" ersetze sollte nur der IE und der Opera gehen? Aber FF nicht mehr? hab das mal getestet aber die debug Fehler Meldungen sind die selben wie davor.
          (Laut ein paar Foren die die übereinstimmende Informationen lieferten gibt es aber noch ein mehr an schwierigkeiten mit innerText, hab aber keine Ahnung ob das hier mit reinspielt)

          So wie ich das gelesen hab unterstützt der IE9 textContent im Javascript. Was der IE nicht verträgt (laut google) sind leere ( 0 / undefined) variablen evtl hindert ihn das?

          Gruß und Danke!

          Kommentar


            #6
            Was man bei solchen Stellen probieren kann, ist zu schaun ob es jQuery-Methoden gibt, die das für einen machen. Die Jungs sind nämlich auf Browser-Kompatabilität aus und kümmern sich da um die ganzen Befindlichkeiten...
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              #7
              Hmm,

              also die erste fehlermeldung ist weg, wenn:
              var text = getText(this);
              if((typeof(foo) === 'undefined') || (text == null))
              text = '';
              das drin steht.

              ist das als IE weiche brauchbar: (innerhalb der templateengine):
              Code:
              function getInnerTextAttributeName()
              {
                  if (document.all) 
                  { 
                      return 'innerText'; 
                  } 
                  else 
                  { 
                      return 'textContent'; 
                  } 
              }
              
              function getText(control) 
              { 
                  if (document.all) 
                  { 
                      return control.innerText; 
                  } 
                  else 
                  { 
                      return control.textContent; 
                  } 
              } 
              
              function setText(control, value) 
              { 
                  if (document.all) 
                  { 
                      control.innerText = value; 
                  } 
                  else 
                  { 
                      control.textContent = value; 
                  } 
              }
              Die beiden Sachen kommen nicht von mir (ich löchere meinen Bruder mit Fragen )
              Dann will er aber immernoch die DOM exception, und da suche ich noch... Aber meine unwissenheit bei JS ist da nicht sehr hilfreich

              Gruß

              Kommentar


                #8
                Zitat von vlamers Beitrag anzeigen
                ist das als IE weiche brauchbar: [...]
                Vermutlich - aber eigentlich will ich mich bei der CV nicht um Browserweichen kümmern müssen, dazu haben wir doch extra jQuery. Da muss es doch eine Lösung für geben!
                Zitat von vlamers Beitrag anzeigen
                Dann will er aber immernoch die DOM exception, und da suche ich noch... Aber meine unwissenheit bei JS ist da nicht sehr hilfreich
                Hier sollte man schauen, wo und wie der jQuery aufgerufen wird (-> Stack trace). Denn dass der Fehler da drinnen liegt ist eher unwahrscheinlich.
                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                Kommentar


                  #9
                  Kleiner Nachtrag:

                  wenn ich nun folgende Zeile:
                  Code:
                  fragment.appendChild( ret[i] );
                  mal ganz blöd gegen:
                  Code:
                  if ( [i] != 0){
                  					fragment.appendChild( ret[i] );
                  					} else {return [i]};
                  tausche

                  springt er zumindest mal drüber und bringt folgenden Fehler:
                  Code:
                  SCRIPT5007: Für die Eigenschaft "split" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert 
                  structure_custom.js, Zeile 55 Zeichen 5
                  Für heute geb ich mal auf

                  Gruß

                  Kommentar


                    #10
                    Zitat von Chris M. Beitrag anzeigen
                    Vermutlich - aber eigentlich will ich mich bei der CV nicht um Browserweichen kümmern müssen, dazu haben wir doch extra jQuery. Da muss es doch eine Lösung für geben!

                    Verstehe ich aber ich hab hier sowenig wissen, dass ich mit jQuery gar nicht klar komme.... Da muss ich noch viel lesen.

                    Danke für deine Geduld

                    Gruß

                    Kommentar


                      #11
                      Hallo

                      Das müsste doch irgendwie damit gehen:
                      .text() – jQuery API

                      Grüsse
                      Iwan

                      Kommentar


                        #12
                        Ich nutze den Thread mal als Fehlersammlung des IE:

                        Zeile 55 in der structure_custom.js:
                        Code:
                         var value = $('link[href*="basic.css"]').attr('href').split('/')[1];
                        Probleme macht: .split ('/')[1]

                        keine LösungsIdee

                        in der templateengine Zeile (ca) 605
                        Code:
                        window.history.pushState(page_id, page_id, window.location.href);
                        IE9 unterstützt pushState nicht. Abhilfe könnte hier die history.js für jQuery schaffen. Damit soll es gehen.
                        oder:
                        Code:
                        $(function () {
                            $("a").click(function () {
                                var hashe = $(this).attr('href'); //window.location.hash;
                                var url = hashe.substring(1);
                                
                                if (typeof (window.history.pushState) == 'function') {
                                    window.history.pushState(page_id, page_id, window.location.href);
                                } else {
                                    window.location.hash = '#' + url;
                                }
                            });
                        Hier weiß ich nicht wie ich das übergeben soll das das richtig läuft. Bei mir bleibt die Seite jetzt im "loading" stehen, dafür ohne Fehlermeldung toll

                        Ich denke das die Lösung mit der history.js einfacher ist. Werds mal versuchen, evtl bekomm ichs iwie hin.
                        http://balupton.github.com/history.j...ery.history.js

                        Gruß

                        Kommentar


                          #13
                          Also ich musste mir jetzt vor dem Posting 6x mit der siebenschwänzigen auf den Rücken schlagen
                          Aber es hätte schon was, wenn man auch die Sicherheitslücke aus Redmond unterstützen könnte (oder wenigstens eine saubere Meldung wie Firefox 14 Download | Get Mozilla Firefox)

                          Wie Chris schon sagte, jQuery sollte das eigentlich im Kern hergeben, dafür braucht es aber einen Paten, auf meinem OS läuft das Ding ned, freiwillige vor

                          Makki
                          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                          -> Bitte KEINE PNs!

                          Kommentar


                            #14
                            Ich habe zum ersten Fehler in der structure_custom.js irgend wo was gelesen, dass es unter umständen probleme mit .split in einer nicht definierten Variabel geben kann.

                            Da wurde empfohlen das in 2 Schritten zu lösen. Vieleicht hilft's:

                            Code:
                                var value = $('link[href*="basic.css"]').attr('href')
                                value = value.split('/')[1];
                            Ich habe dass bei mir mal geändert und zumindest im FF scheint es immer noch ohne Fehler zu funktionieren. Vieleicht kann der IE damit auch mehr anfangen ->Kann das gerade nicht testen, da ich bei mir deine übrigen Anpassungen nicht gemacht habe und desshalb der IE überhaubt nicht läuft.
                            Gruss Patrik alias swiss

                            Kommentar


                              #15
                              Zitat von makki Beitrag anzeigen
                              Aber es hätte schon was, wenn man auch die Sicherheitslücke aus Redmond unterstützen könnte
                              Makki
                              Und sowas kommt von makki
                              Aussage als Otto-normal Nutzer: Soll er doch die Sicherheitslücken haben, funktionieren muss es. Ich hab auf meinen Rechnern keine Empfindlichen Daten. Ich nutze nur FF oder Chrome weil er mir vom Handling besser taugt. Meine Frau nutzt nur IE weil ihr der Rest nicht zusagt

                              Ich bekomme im IE Debugger im "Quirksmode" eine bessere Ausgabe der Fehlermeldungen (zumindest mehr )
                              Code:
                              SCRIPT1028: Bezeichner, Zeichenfolge oder Zahl erwartet 
                              infotrigger.js, Zeile 92 Zeichen 5
                              SCRIPT1028: Bezeichner, Zeichenfolge oder Zahl erwartet 
                              multitrigger.js, Zeile 111 Zeichen 7
                              SCRIPT1028: Bezeichner, Zeichenfolge oder Zahl erwartet 
                              transform_knx.js, Zeile 398 Zeichen 3
                              SCRIPT5007: Für die Eigenschaft "replace" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert 
                              templateengine.js, Zeile 326 Zeichen 9
                              SCRIPT5007: Für die Eigenschaft "replace" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert 
                              templateengine.js, Zeile 326 Zeichen 9
                              SCRIPT1028: Bezeichner, Zeichenfolge oder Zahl erwartet 
                              structure_plugin.js?_=1343234433107, Zeile 221 Zeichen 3
                              SCRIPT1028: Bezeichner, Zeichenfolge oder Zahl erwartet 
                              structure_plugin.js?_=1343234433108, Zeile 91 Zeichen 5
                              SCRIPT1028: Bezeichner, Zeichenfolge oder Zahl erwartet 
                              structure_plugin.js?_=1343234433110, Zeile 89 Zeichen 3
                              Der fehler mit dem ich mal Angefangen hätte die Liste zu durchsuchen ist der in der templateengine Z326:
                              Code:
                               text = text.replace( /(href="[^"]*)(")/g, '$1' + search + '$2' );
                              Das man dass iwie über jQuery lösen kann hab ich gelesen, werde das auch mal versuchen.
                              Gibt es eine möglichkeit zu testen ob sich der Aufwand lohnt? Bzw. wie geht:
                              if text = (0 or undefined) {return 0};
                              in javascript??

                              @swiss: Danke für den Tipp!

                              Gruß

                              Kommentar

                              Lädt...
                              X