gecko: IE6-7: Textbox bug?

Hi!

Ich habe ein sehr komisches Problem mit dem Internet Explorer 6 und 7.
Auf meiner Page http://gecko.me kann man mit dem IE6/7 nicht in die Suchmaske schreiben. Mit dem neuen IE8 und allen anderen Browsern funktioniert es (natürlich).

Wisst ihr woran es liegen könnte?

  1. Hi,

    Auf meiner Page http://gecko.me kann man mit dem IE6/7 nicht in die Suchmaske schreiben.

    ich habe keine IE 0.85714 (6/7), aber mit IE 6 geht es recht gut.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      »» Auf meiner Page http://gecko.me kann man mit dem IE6/7 nicht in die Suchmaske schreiben.

      ich habe keine IE 0.85714 (6/7), aber mit IE 6 geht es recht gut.

      Mit ie7 und ie6, "standalone" und XP SP3+Updates, kann ich das Problem nachvollziehen; ie8 ist ok.

      Grüsse, Cyx23

      1. Hallo,

        » »» Auf meiner Page http://gecko.me kann man mit dem IE6/7 nicht in die Suchmaske schreiben.

        » ich habe keine IE 0.85714 (6/7), aber mit IE 6 geht es recht gut.

        Mit ie7 und ie6, "standalone" und XP SP3+Updates, kann ich das Problem nachvollziehen; ie8 ist ok.

        Mit IE7 (Windows XP Pro SP3 + Updates) kann ich das Problem nicht nachvollziehen, ebensowenig mit einem IE 6 (ebenfalls XP Pro SP3 + Updates). Es scheint mir, es handle sich um ein reines IE-standalone-Problem. Sowas ist meiner Meinung nach irrelevant und keine weiteren Aufwand wert.

        Freundliche Grüße

        Vinzenz

        1. okay danke.

  2. Hi,

    Auf meiner Page http://gecko.me kann man mit dem IE6/7 nicht in die Suchmaske schreiben.

    Lässt sich der Cursor denn mittels Tab-Taste in das Feld bewegen? Dann funktioniert es grundsätzlich, und du hast vermutlich irgendein (in dem Bereich transparentes) Element darüber liegen, welches Mausklicks abfängt.
    Wenn du einen nativen IE 6 zum testen da hast, dann installier dir in dem die IE Developer Toolbar, und überprüfe damit, welches Element das sein könnte.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi! Danke für die schnellen Antworten.

      @ChrisB: Nein selbst mit der Tabtaste kann ich das Feld nicht auswählen geschweige denn rein schreiben.

      Ich nutze einen eigenen DOCTYPE (XHTML1.1) um das Target Attribut ein zu binden. Könnte es vielleicht damit zusammen hängen?

      1. Hi,

        Ich nutze einen eigenen DOCTYPE (XHTML1.1) um das Target Attribut ein zu binden. Könnte es vielleicht damit zusammen hängen?

        das Problem liegt daran, dass Du keinen IE 6 oder IE 7 verwendest, sondern Programme, die den Anschein erwecken, sie zu sein. Ich schließe mich Vinzenz' Meinung an.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. @ChrisB: Nein das mit der Tabtaste geht leider nicht.

          @Cheetah: Was meinst du damit? Ich nutze "Internet Explorer Collection" naja mit dem nativem IE7 ging es, wenn ich mich recht erinnere, auch nicht.

          mfg

          1. Hi,

            @Cheetah: Was meinst du damit? Ich nutze "Internet Explorer Collection"

            eben. Auf Deinem System befindet sich maximal ein Internet Explorer (nämlich Version 8), der Rest ist allenfalls etwas ähnliches.

            naja mit dem nativem IE7 ging es, wenn ich mich recht erinnere, auch nicht.

            Den habe ich nicht hier. Mit einem IE 6 gibt es jedoch keine nennenswerten Probleme.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Okay das ist gut. Ich sehe bekomme seit einer größeren JavaScript einen Fehler im IE6 kann ihn aber mit meinem leider nicht nachgucken.

              Siehst du ihn auch. Wenn ja, in welcher Zeile?

              Danke für deine schnellen Antworten ;)

              1. Hallo,

                Okay das ist gut. Ich sehe bekomme seit einer größeren JavaScript einen Fehler im IE6 kann ihn aber mit meinem leider nicht nachgucken.

                mein IE6 meldet mir keinen Javascriptfehler. Nicht beim Laden der Seite, nicht beim Nutzen diverser Javascript-"Links".

                Die IE-Einstellungen (Erweitert):
                "Skriptfehler anzeigen"         ist aktiviert
                "Skriptdebugging deaktivieren"  ist deaktiviert (Sowohl "Andere" als auch "Internet Explorer")

                Wo siehst Du einen Javascript-Fehler? In Deiner "Internet Explorer Collection" im IE6-Modus? Kann es sein, dass Dir diese Collection Fehler vorgaukelt, wo bei der Verwendung echter IEs keine auftreten. Nutze echte IEs, wenn Du IEs testen willst.

                Freundliche Grüße

                Vinzenz

      2. Hi,

        Ich nutze einen eigenen DOCTYPE (XHTML1.1) um das Target Attribut ein zu binden.

        Wozu denn so einen Unfug?
        target existiert in den Transitional-Varianten von sowohl HTML 4.01 als auch XHTML 1.0.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Weil XHTML modular aufgebaut ist. Der doctype ist standardkonform. Also passt doch?

          1. Weil XHTML modular aufgebaut ist.

            XHTML 1.1 ist nicht modular. XHTML Modularization ist modular, und XHTML 1.1 eine spezifische Anwendung davon. Dein XHTML-M12n-Dialekt ist nicht mehr XHTML 1.1, deshalb würde ich ihn auch nicht so nennen. Aber das ist nur eine Frage der Logik.

            Der doctype ist standardkonform. Also passt doch?

            <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
            machst, wenn der Browser application/xhtml+xml akzeptiert, zeigt, dass du

            Diese Angabe macht im XML-Modus überhaupt keinen Sinn. Sie macht nur für text/html-Browser Sinn. Da du ohnehin Content-Negotiation machst, kannst du sie im letzteren Falle ja einfach herauslassen.

            Den IE 6 willst du nicht ernsthaft im Quirks-Modus ansprechen, oder?

            Allerdings ralle ich die Sache mit der Kodierungsangabe ohnehin nicht - du verwendest anscheinend nicht UTF-8, sondern faktisch US-ASCII, weil du alle Nicht-ASCII-Zeichen unnötigerweise mit numerischen Zeichenreferenzen maskierst.

            Warum baust du so komplexe Sachen? Was erhoffst du dir dadurch? Warum nicht einfach ein billiges UTF-8-kodiertes XHTML-1.0-Dokument ggf. mit Content Negotiation?

            Und gewöhne dir bitte das onclick="javascript:..." ab. Das »javascript:« dort ist völlig überflüssig. Generell solltest du dich auch mit der Auslagerung von JavaScript aus dem Dokument beschäftigen.

            Mathias

            1. Danke für die Kritik ;-) Werde versuchen es umzusetzen.

            2. Hallo,

              Den IE 6 willst du nicht ernsthaft im Quirks-Modus ansprechen, oder?

              Wahrscheinlich möchte er das wirklich nicht. Trotzdem stört mich der etwas pauschale Eindruck der Frage - es gibt auch Gründe es doch zu tun.

              Grüsse

              Cyx23

              1. Trotzdem stört mich der etwas pauschale Eindruck der Frage - es gibt auch Gründe es doch zu tun.

                In meiner Praxis bin ich immer einfacher damit gefahren, den IE 6 im standardkonformen Modus anzusprechen, das hat mir viele Fixes erspart und die Nähe zu IE 7 und 8 hat mir zum Vorteil gereicht.

                Insofern spreche ich hier immer wieder die pauschale Empfehlung aus, dies gleich zu tun. Insbesondere, wenn sich jemand der Problematik des Quirks-Modus durch eine XML-Deklaration offenbar gar nicht bewusst ist, erst in das Thema einsteigt und einen Ratschlag gut gebrauchen kann.

                Ich weiß, dass wir da nicht einer Meinung sind.

                Mathias

            3. So hab mir den Code jetzt noch mal durch gesehen.

              Hab eine paar Fragen und Anmerkungen:
              -Wieso verwende ich einen Dialekt? Wie würde es denn richtiges XHTML 1.1 sein?
              -Der Content-Type 'application/xhtml+xml' wird nur bei Browsern gesendet die ihn im HTTP_ACCEPT Header abfragen.
              -Die Sache mit der Codierung werde ich noch in Angriff nehmen, hatte Probleme mit der anzeige von Sonderzeichen mit JavaScript.
              -Wieso das "javascript:" weglassen? Ich kannte es bisher nur so.

              Danke! Bin nicht so drin in der Webentwicklung.

              1. -Wieso verwende ich einen Dialekt? Wie würde es denn richtiges XHTML 1.1 sein?

                XHTML 1.1 als minimale Beispielanwendung von XHTML M12n besteht aus einer festgelegten DTD mit einem bestimmten Modulsatz. Du baust anhand dieser Module und einem weiteren M12n-Modul eine eigene M12n-Anwendung.

                Das würde ich eher »XHTML 1.1 + Target Module« oder so nennen. Aber das ist wie gesagt nur eine Stilfrage.

                -Der Content-Type 'application/xhtml+xml' wird nur bei Browsern gesendet die ihn im HTTP_ACCEPT Header abfragen.

                Ja, ist mir klar. Der META-Tag mit Content-Type ist in dem Fall irrelevant.

                -Die Sache mit der Codierung werde ich noch in Angriff nehmen, hatte Probleme mit der anzeige von Sonderzeichen mit JavaScript.

                XMLHttpRequest verwendet UTF-8.

                -Wieso das "javascript:" weglassen?

                Wieso es hinmachen? Es erfüllt keinen Zweck und ist daher überflüssig, wenn auch nicht schädlich, weil es als JavaScript-Label gewertet wird (jedes Statement in JS kann ein Label bekommen - das ist aber nur interessant bei verschachtelten Schleifen und break).

                Ich kannte es bisher nur so.

                Woher?

                Mathias

                1. Schau jetzt nochmal. Ist es jetzt zufriedenstellend für dich?

                  1. gecko.me im Public Identifier der DOCTYPE-Deklaration machte schon mehr Sinn als W3C.

                    Die Optimierungsmöglichkeiten im JavaScript kann ich bei Interesse aufführen. Mal das hier vorab: Statt <body onload="..."> kannst du im Javascript einfach schreiben:

                    window.onload = functiuon () {
                       InitXmlHttp();
                       InitTT();
                       InitSS();
                       InitControls();
                    };

                    Das geht so natürlich mit allen Events (Traditionelles Event-Handling). Die extensive Benutzung von new Function anstatt solchen Funktionsausdrücken widerspricht dem Aufbau von JavaScript als funktionaler Sprache. Funktionen bilden Closures, womit man Probleme sehr elegant lösen kann.
                    new Function sollte für solche einfachen Aufgaben vermieden werden, es ist ein Äquivalent zu eval, bei dem JS-Code in einem String verpackt wird. Das ist langsam und erschwert Wartung und Debugging.

                    Mathias

                    1. Erstens:
                      Das mit window.onload hatte ich schon mal Probiert, aber als "<body window.onload="InitPage();" ... " wollte im IE nicht klappen - deine Methode funktioniert natürlich, kannst du mir sagen wieso ein simples window.onload im body nicht geht (mit IE)?

                      Zweitens:
                      Ich benutze "new Function(...)" in Verbindung mit 'onclick' da sonst der IE6-7 bei mit JS erzeugten Elementen streikt.
                      Wüsstest du eine elegantere Lösung die mit allen Browsern funktioniert?

                      1. Das mit window.onload hatte ich schon mal Probiert, aber als "<body window.onload="InitPage();" ... " wollte im IE nicht klappen

                        Das ist auch eine quere Vermischung von HTML und JS, sodass es weder das eine noch das andere ist - und nicht das, was ich vorschlug.

                        Es gibt einerseits eingebettete HTML-Event-Handler-Attribute:
                        <element onevent="handler()">
                        und andererseits Event-Handling rein JavaScript-seitig:
                        element.onevent = handler;

                        window.onload = function () {...}; darf natürlich nicht in einem HTML-Tag stehen, sondern ist eine reine JS-Anweisung als Alternative zum <body onload="...">. Das onload-Attribut im body-Tag kann dann wegfallen.

                        Ich benutze "new Function(...)" in Verbindung mit 'onclick' da sonst der IE6-7 bei mit JS erzeugten Elementen streikt.

                        Dann liegt irgendwo anders noch ein weiterer Fehler. Das Schema element.onevent = handlerfunktion; funktioniert immer, auch bei erzeugten Elementen.

                        Mathias

                        1. Hier ein Beispiel wie ich es anstelle:

                          var my_href = document.createAttribute("href");  
                          my_href.nodeValue = "#";  
                          my_a.setAttributeNode(my_href);  
                            
                          var my_id = document.createAttribute("id");  
                          my_id.nodeValue = "btn";  
                          my_a.setAttributeNode(my_id);  
                            
                          var my_class = document.createAttribute("class");  
                          my_class.nodeValue = "button";  
                          my_a.setAttributeNode(my_class);  
                            
                          my_a.onclick = new Function("this.blur(); BlogSearch(); return false;");
                          

                          Nebenbei: createAttribute() nutze ich auch wegen dem IE, genau so wie new Function() - ohne den Kram wär der Code viel schlanker!

                          1. var my_href = document.createAttribute("href");
                            my_href.nodeValue = "#";
                            my_a.setAttributeNode(my_href);

                            createAttribute ist unnötig und bringt den IE eher in Schwierigkeiten.

                            my_a.href = '#';
                            reicht völlig aus.

                            var my_id = document.createAttribute("id");
                            my_id.nodeValue = "btn";
                            my_a.setAttributeNode(my_id);

                            my_a.id = 'btn';

                            var my_class = document.createAttribute("class");
                            my_class.nodeValue = "button";
                            my_a.setAttributeNode(my_class);

                            my_a.className = 'button';

                            my_a.onclick = new Function("this.blur(); BlogSearch(); return false;");[/code]

                            my_a.onclick = function () {
                               this.blur();
                               BlogSearch();
                               return false;
                            };

                            ohne den Kram wär der Code viel schlanker!

                            Kann er auch sein, auch für den IE.

                            Mathias

                            1. Soo... Hab die ganze JavaScript Datei komplett überarbeitet. Waren knapp 1500 Zeilen, jetzt sinds ~1400.

                              Hast du noch Verbesserungsvorschläge?

      3. Hi!

        Ich habe ein sehr komisches Problem mit dem Internet Explorer 6 und 7.
        Auf meiner Page http://gecko.me kann man mit dem IE6/7 nicht in die Suchmaske schreiben.
        Mit dem neuen IE8 und allen anderen Browsern funktioniert es (natürlich).

        Wisst ihr woran es liegen könnte?

        1. Hi,

          Ich habe ein sehr komisches Problem mit dem Internet Explorer 6 und 7.

          Du scheinst auch ein Problem mit einer neuralen Kausalitätsschleife zu haben: Genau diese Frage hast Du bereits gestellt. Tue das bitte nicht in einem neuen Thread, Doppelpostings sind hier unerwünscht.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes