JürgenB: IE unter MAC OS stürzt ab

Hallo,

ich habe eine Bitte an die MAC-Fraktion hier im Forum. Mir steht leider kein MAC zur Verfügung. Wenn allerdings die anderen JS-Experten anhand des Quellcodes sehen, wo der Fehler steckt, wäre das ebenfalls eine große Hilfe für mich.

Das Problem tritt im IE 5.2 unter OS X auf. Im Safari läuft alles. Ich vermute aber, dass die anderen IEs unter älteren Systemen auch Probleme haben.

Wenn man auf der folgenden Seite auf die Zeilenüberschrift klickt, um die Tabelle zu sortieren, erscheint an Stelle des Mauszeigers ein farbiger Kreis und der Browser lässt sich nur noch "hard" beenden. Mehr Fehlerbeschreibung hat mir der freundliche Besucher nicht mitgeteilt.

Die Seite findet ihr unter
 http://www.j-berkemeier.de/TableSort.html
und den Quelltext unter
 http://www.j-berkemeier.de/TableSort_so_geht_es.html.

Wenn mir jemand Art und Ort des Fehlers aus der JS-Console mitteilen könnte, wäre das eine große Hilfe für mich. Es ist schließlich kein gutes Gefühl, einen DoS für MACs im Netz zu haben.

Gruß, Jürgen

PS
Das MAC-Problem aus Probleme mit cloneNode und toFixed im Safari konnte ich lösen. Offensichtlich kann der Safari mit cloneNode keine Bilder klonen. Ich habe statt dessen createElement genommen.
toFixed kann er offensichtlich auch nicht. Ich frage jetzt die Existenz ab (was man eigentlich immer tun sollte) und im Safari wird die Zahl einfach mit schrecklich vielen und völlig unsinnigen Nachkommastellen gezeigt.

  1. Hallo,

    ich habe eine modifizierte Version der Seite mit einigen "alerts" als Debughilfe ins Netz gestellt:

    http://www.j-berkemeier.de/TableSort_Test.html

    nach dem Aufruf sollten fünf alerts kommen, danach sind die Spaltenüberschriften in Links umgewandelt. Wenn man danach auf eine der Überschriften klickt, erscheinen weitere alerts. Die Meldung des letzten alerts würde mich interessieren.

    Das Script macht wirklich nichts schlimmes, außer das es den IE unter MAC OSX abstürzen lässt. Hier noch einmal der Quellcode:

    http://www.j-berkemeier.de/TableSort_Test.txt

    Gruß, Jürgen

    1. Hallo,

      ist die Frage bzw. die Bitte wirklich so schwer oder gibt es keine User mehr, die den IE unter OSX einsetzen? Denn dann ist mein Problem gelöst.

      Gruß, Jürgen

      1. Hallo,

        Nabend!

        ist die Frage bzw. die Bitte wirklich so schwer oder gibt es keine User mehr, die den IE unter OSX einsetzen? Denn dann ist mein Problem gelöst.

        Wenn ich morgen früh mit meinem Mac im Netz bin, versuch ich dran zu denken, aber ich (und die Mac-User die ich kenne), nehmen eh alle den Safari. Für manche Sachen gibst bei mir noch den Camino, aber der IE ist (größtenteils) genauso grottig wie unter M$ Windows.

        Gruß, Jürgen

        Tschüss, Robert

        1. Hallo Robert,

          Wenn ich morgen früh mit meinem Mac im Netz bin, versuch ich dran zu denken, ...

          dann teste bitte http://www.j-berkemeier.de/TableSort_Test_2.html. Ich habe nach dem Hinweis von Tim die Testseite etwas modifiziert.

          ... aber ich (und die Mac-User die ich kenne), nehmen eh alle den Safari. Für manche Sachen gibst bei mir noch den Camino, aber der IE ist (größtenteils) genauso grottig wie unter M$ Windows.

          Das stimmt. Ich habe bei meiner Suche auch nichts Positives gefunden.

          Gruß, Jürgen

          1. Hallo Robert,

            Guten Morgen!

            Wenn ich morgen früh mit meinem Mac im Netz bin, versuch ich dran zu denken, ...

            dann teste bitte http://www.j-berkemeier.de/TableSort_Test_2.html. Ich habe nach dem Hinweis von Tim die Testseite etwas modifiziert.

            Habe dran gedacht. Folgende alerts() sehe ich nach dem Anklicken von "Raum" (Tabelle1.srt(1)):

            sort(1)
            vor Arr.sort
            nach Arr.sort
            Rückschreiben, Zeile: 0
            ...
            Rückschreiben, Zeile: 5
            sort ende

            wobei allerdings die Überschrift der vierten Spalte dann "Anton3A" lautet. Mein IE lebt immernoch.

            ... aber ich (und die Mac-User die ich kenne), nehmen eh alle den Safari. Für manche Sachen gibst bei mir noch den Camino, aber der IE ist (größtenteils) genauso grottig wie unter M$ Windows.

            Das stimmt. Ich habe bei meiner Suche auch nichts Positives gefunden.

            Über den Mac-IE? Kein Wunder, seit dem Apple einen eigenen Browser mitliefert, scheinen sich die Nerds in Redmond nicht mehr sonderlich um den IE für die Macs zu kümmern, obwohl er einige Sachen besser als unter Windows kann, z.B. transparente PNGs. Außerdem ist sein Aussehen mit (einer Art) "Themes" konfigurierbar. Aber er ist halt bezüglich diverser Standards etwas veraltet.

            Gruß, Jürgen

            Schönes Wochenende,
            Robert

    2. Hallo Jürgen,

      nach dem Aufruf sollten fünf alerts kommen,

      Seite wird geladen ...

      JB_Table(Tab1,-1,1,2,3,4,5,Tabelle1)
      Text2Link([object TH],Javascript:Tabelle1.srt(1))
      Text2Link([object TH],Javascript:Tabelle1.srt(2))
      Text2Link([object TH],Javascript:Tabelle1.srt(3))
      Text2Link([object TH],Javascript:Tabelle1.srt(4))
      Text2Link([object TH],Javascript:Tabelle1.srt(5))

      Klick auf »e-maile« ...

      sort(4)
      vor Arr.sort
      nach Arr.sort
      leere Alert-Meldung

      Browser reagiert nicht mehr, Sat-1-Ball, Ich kille den Browser

      Tim

      1. Hallo Tim,

        Danke, dass Du Dich geopfert hasst. Ich habe so eine Idee, wo der Fehler stecken könnte: innerHTML und DOM. Ich habe mal statt dessen firstChild.nodeValue genommen. Könntest Du die modifizierte Seite auch noch einmal testen?

        http://www.j-berkemeier.de/TableSort_Test_2.html

        Danke und Gruß, Jürgen

        1. Hallo Jürgen,

          Danke, dass Du Dich geopfert hasst. Ich habe so eine Idee, wo der Fehler
          stecken könnte: innerHTML und DOM.

          Ja, Quirksmode listet die Unterstützung von innerHTML auch als buggy:
          http://www.quirksmode.org/dom/w3c_html.html

          http://www.j-berkemeier.de/TableSort_Test_2.html

          Klappt wunderbar, bis auf die vielen kleinen nervigen Alerts. ;o)

          Tim

          1. Hallo Tim,

            Danke, dann scheint der Fehler ja gefunden zu sein. Nur leider begeistert es mich nicht besonders, mir jetzt ein DOM-konformes innerHTML selbst zu basteln. Was ich dazu im Netz gefunden habe, sah auch zu aufwändig aus, nur um es einem Browser recht zu machen, der kaum benutzt wird.

            Ich würde ihn viel lieber wie die anderen Browser behandeln, die kein DOM unterstützen, doch wie frage ich ab ob ein Browser, der innerHTML lesen, kann, dieses auch schreiben kann? Oder anderer Weg: wie erfahre ich, ob ein MAC-IE die Seite besucht?

            Gruß, Jürgen

            1. Hallo Jürgen,

              Ich würde ihn viel lieber wie die anderen Browser behandeln, die kein DOM
              unterstützen, doch wie frage ich ab ob ein Browser, der innerHTML lesen,
              kann, dieses auch schreiben kann? Oder anderer Weg: wie erfahre ich, ob ein
              MAC-IE die Seite besucht?

              Wenn wir mal davon ausgehen, daß der String mit dem Namen des Browsers eh
              zu nervig und zu unzuverlässig zu parsen ist, dann bleibt nur object
              detection übrig. Das Problem liegt natürlich daran, daß der MacIE innerHTML
              hat, ein einfaches if (innerHTML) fällt dann natürlich raus.

              Ich würde an Deiner Stelle über einen anderen Ansatz nachdenken: Das ganze
              Script DOM-konform schreiben und erst dann über Ausnahmen für Browser ohne
              DOM-Kenntnisse schreiben. Letztere sterben nämlich langsam aus, DOM dürfte
              da zukunftssicherer sein. Und: Browser ohne DOM-Unterstützung sind wohl
              einfacher über object detection zu enttarnen. Und ich halte DOM für nicht
              besonders soo schwer, auch nicht im Vergleich zu innerHTML.

              Das ist natürlich die Frage des Aufwands, den Du Dir machen willst, bzw.
              was Du als gerechtfertig ansiehst. Wie Robert kenne ich in meinem Macs
              benutzenden Bekanntenkreis niemanden, der noch den IE für den Mac benutzt
              allerdings solltest Du bedenken: Von Mitte der 90er bis zum Erscheinen von
              MacOS X 10.3 vor ungefähr einem Jahr, war der IE für den Mac der
              vorinstallierte Browser auf Mac-Systemen. Sowas kann ein verdammt langes
              Beharrungsvermögen haben, leider.

              Tim

              1. Hi,

                Wenn wir mal davon ausgehen, daß der String mit dem Namen des Browsers eh
                zu nervig und zu unzuverlässig zu parsen ist

                das sehe ich in diesem Fall anders.
                Ich habe mir mein letztes Logfile mal angesehen. Von über 10.000 Kennungen waren ca. 200 Macs.
                Hiervon wiederum waren ganze 67 Mac-IEs. Und diese sind wirklich eindeutig über den UserAgent zu identifizieren:

                Mozilla/4.0 (compatible; MSIE 5.xx; Mac_PowerPC)

                Lediglich die Versionsnummern schwanken zwischen 5.0 und 5.23.
                Ich wüßte auch nicht, ob der Mac-IE ein Faken zuläßt - und selbst wenn, dürften die wenigen User das kaum kennen oder gar nutzen.

                freundliche Grüße
                Ingo

                1. Hi,
                  kleiner Nachtrag: Ich habe noch einen

                  Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC; S425166QXM0330b)

                  gefunden. Aber dennoch dürfte "MSIE" und "Mac_PowerPC" ausreichend sein.

                  freundliche Grüße
                  Ingo

                  1. Hallo Ingo,

                    gefunden. Aber dennoch dürfte "MSIE" und "Mac_PowerPC" ausreichend sein.

                    Ja, bei diesem einen Browser hast Du natürlich recht. Bei dem Test des UAs
                    auf mehrere Browser z.B. unter Windows dürfte das aber ziemlich nervig werden.
                    Aber ja, das könnte für Jürgens Problem die schnellere, wenn auch unsaubere,
                    Lösung sein, da habe ich zu sehr aus dem Reflex geantwortet.

                    Tim

  2. Hallo Ingo, Robert und Tim,

    erst einmal mein Dank an Euch.

    Meine Seiten sind überwiegend kleine Javascriptspielereien. Lediglich der Tabellensortierer wird auch auf den Seiten unseres Institutes eingesetzt. Hier werde ich auf innerHTML verzichten, ich brauchte es sowieso nur, um Mitarbeitertabellen mit <a href="mailto:...> sortieren zu können. Wegen der Spamflut habe ich aber inzwischen keine klickbaren Einträge mehr. In einer älteren Version habe ich diese spezielle Spalte  mit cloneNode behandelt.

    Anders sieht es bei den anderen Seiten aus. Da ich aber hier schon die "Nicht-DOM-Browser" aussperre, werde ich bei den Seiten mit innerHTML die Abfrage einfach auf den MAC-IE erweitern. Der freundliche Besucher, der mich auf das Problem hingewiesen hat, hat den IE auch nur deshalb benutzt, weil er ein anderes Problem (siehe PS im Ausgangsposting) gefunden hat und dieses im IE verifizieren wollte.

    Ich habe mir natürlich schon Gedanken über ein DOM-konformes innerHTML gemacht, und das Schreiben ist auch nicht so schwer, aber ich will ja auch lesen können. Und dann muss ich alle Tags mit allen Attributen berücksichtigen. Evtl. würde es für meine Bedürfnisse auch reichen, mit cloneNode zu arbeiten und für das Sortieren nach dem ersten Textknoten zu suchen. Leider können nicht alle Browser alles klonen.

    Gruß, Jürgen

    1. Hallo,

      jetzt habe ich doch glatt vergessen, das Thema zu ändern.

      Gruß, Jürgen

      PS Ich werde die Testseiten löschen, wenn der Thread im Archiv verschwindet.