Ankündigung

Einklappen
Keine Ankündigung bisher.

IE9 "undefined" error -> Debuggen

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

  • vlamers
    antwortet
    Oh ich war der Meinung dass der IE9 kompatibler ist als seine Vorgänger...


    Ich suche gerade, wie man die Zeile 326 in der templateengine:
    Code:
     text = text.replace( /(href="[^"]*)(")/g, '$1' + search + '$2' );
    Wenn ich die Zeile auskommentiere ( // ) dann macht das im Chrome und im FF keinen unterschied. (Cache bereinigt)

    darf ich fragen was die Zeile eigentlich machen sollte?

    (zumindest ist die Fehlermeldung im IE dann weg )

    Gruß

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Hallo ihr beiden

    Ich glaube nicht an einen Fehler im jquery sondern je länger je mehr, dass der IE totaler Müll ist. Ich nutze ihn zwar nicht aber wenn man sich so durch die Internetseiten liest, stehen einem manchmal fast die Haare zu berge. Dazu kommt, dass MS auch gewisse Dinge verschlimmbessert hat. Da gibt es Dinge die mal funktionierten und mit dem neuen IE nicht mehr

    Sehr interessant sind dann Seiten wie diese:

    jQuery Fallen im Internet Explorer | Felix Geenen – Webdesign in Münster

    Da werden wenigstens mal ein paar IE-Fallen zusammengefasst damit man weiss wo der Fehler liegen könnte


    Es kann also sehr gut sein, dass wir es mit z.B. IE8 zum laufen bekommen aber mit IE9 geht es wieder nicht mehr...


    ...kennen wir das nicht von irgend wo her? (-> GA Export in der ETS und anschliessender Import im WG? )

    Einen Kommentar schreiben:


  • makki
    antwortet
    Wir haben (ich vermute mal nicht nur ich) nicht unbedingt zu jedem Zeitpunkt genau gewusst, was an welcher Stelle jQuery (Browserunabhängig) und was teils Browser-spezifischer JS/DOM-Direktzugriff ist
    Da sind sicher ein paar Hündchen begraben, vermutlich gilt es nur das auszusortieren, dann sollte es eigentlich lüppen..

    Ansonsten teile ich Chris' Meinung: wenns danach im FF/Webkit (Safari/Chrome) immernoch geht->ab ins SVN damit.

    Makki

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Zitat von swiss Beitrag anzeigen
    in der jquery.js in der Zeile 5763 fällt der IE auf die Nase...
    [...]
    Hat jemand eine Idee wie man die If Abfrage IE-gerecht umschreiebn müsst?
    Gar nicht!

    Ich glaube auch erst mal nicht an einen Fehler in jQuery - das ist auf zig Seiten vielfach erprobt, d.h. wenn wir hier einen Bug gefunden hätten, wäre das wie ein 6er im Lotto - möglich aber sehr unwahrscheinlich.

    => Ich denke das Problem liegt ein paar Aufrufe früher (-> Stack Trace ansehen)

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Ich habe nun ein Problem lokalisiert aber ich weiss nicht, wie man es beheben kann

    in der jquery.js in der Zeile 5763 fällt der IE auf die Nase...

    Code:
        append: function() {
            return this.domManip(arguments, true, function( elem ) {
                if ( this.nodeType === 1 ) {
                    this.appendChild( elem );
                }
            });
        },
    Die innere If Abfrage wird scheinbar einfach ignoriert. Dabei wird scheinbar geprüft, ob der nodeType = 1 ist. Wenn ich mir eine überwachung auf elem einrichte, hat elem an dieser Stelle aber den nodeType = 3. Dass wird der Grund sein, wesshalb der IE hier auf die Nase fällt. Er dürfte this.appendChild( elem ); in diesem Fall überhaubt nicht aufrufen.

    Hat jemand eine Idee wie man die If Abfrage IE-gerecht umschreiebn müsst?

    Einen Kommentar schreiben:


  • swiss
    antwortet
    @makki

    Hmm.. Seltsam. Wenn ich die js lokal auf meinem PC aufrufe startet der MS Java interpreter und wirft die gleichen Fehler wie sie von Volker benannt wurden. Das macht das debuggen der einzelnen Datein etwas einfachter. Wenn es sich dabei aber nicht um Java handelt... Was ist es den genau? Könnte helfen sich da etwas einzulesen.

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Erst mal: Respekt für die Arbeit hier!

    Das das ganze etwas zu schnell für mich läuft (was absolut i.O. ist!), ein Vorschlag:
    Wenn's Feedback von mir braucht (z.B. Frage zur CV internen Struktur, gröbere Code Änderungen, etc. pp.) dann bitte explizit dazu schreiben.

    Wenn's offensichtliche Dinge sind, die sowohl linksrum als auch rechtsrum machen kann und alle Browser beides unterstützen aber der IE lieber nur eine Variante davon will: einfach gleich in's SVN damit! (Und wenn's trotz schnellem Check doch inkompatibel war, finden wir das schon noch nachträglich)

    Und wenn irgendwo direkt auf einen DOM-Wert zugegriffen wird (vgl. textContent) und sich da der IE vom Rest der Welt unterscheidet, aber jQuery das schön kapseln kann, dann auch diese Änderung ruhig gleich in's SVN.

    Einen Kommentar schreiben:


  • makki
    antwortet
    Äääähm, mit der Obergrütze JAVA hat das rein garnichts zu tun!
    Es heisst landläufig Javascript, eigentlich ECMA-Script, das wars dann aber auch schon mit den gemeinsamkeiten zu Java oder den Patenttrollen von Sun (jetzt Oracle)

    Makki

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Also das Problem scheint, dass der Microsoft Javainterpreter einfach totaler Müll ist. Wenn ich die von meinem WG heruntergeladenen Datein aufrufe erhalte ich genau die gleichen Fehlermeldungen. Das Sun Java scheint damit keine Probleme zu haben.

    Bei mir läuft der IE scheinbar mit MS Java und FF mit Sun Java. Kann man den IE dazu überreden mit Sun Java zu arbeiten?

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Hoppla! Möglicherweise ist diese in der structure_custom.js hab ich verwechselt. Sry!
    Gruß

    Sent from my GT-I8350 using Board Express

    Einen Kommentar schreiben:


  • swiss
    antwortet
    Hallo Volker

    An welcher Version arbeitest du? Releas oder SVN? Ich finde die betreffenden Zeilen nicht oder meine SVN Version ist schon wieder zu alt. Ich mach gleich mal ein Update

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    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ß

    Einen Kommentar schreiben:


  • swiss
    antwortet
    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.

    Einen Kommentar schreiben:


  • makki
    antwortet
    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

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    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ß

    Einen Kommentar schreiben:

Lädt...
X