Günter Marchewka: (JavaScript) Objekte, Eigenschaften, Attribute

Einen fröhlichen Sonntag an Alle!

Ich bin seit einiger Zeit dabei, mir eine Webseite zu schaffen, die alle Objekte, Eigenschaften und Attribute anzeigen soll, die ein Browser kennt.
Beim IE 5.0 und 5.5, NS 4.73 und 6.2.2 und bei Mozilla bis 0.9.9 bin ich mehr oder weniger erfolgreich, nur der Opera 6.0 Build 1010 weigert sich, mir irgendetwas zu verraten?
Dieser Browser ignoriert Schleifen wie "for (var in objekt)..."
Gibt es dazu eine Alternative?
Das Beispiel ist zu finden unter http://www.jelue.de/tifhu/domtest2.html
Es kommt zu _keiner_ Fehlermeldung beim Durchlaufen der for-Schleife. Es ist egal, wie sich der Browser identifiziert.
Es macht den Eindruck, das Opera unbekannte Befehle einfach übergeht.
Kann das sein?
Gruß
Günter
p.s.: getestet unter Win95, WinME und Win2000

  1. Sup!

    Einen fröhlichen Sonntag an Alle!

    Und bei mir ist es noch Samstag... sowas!

    Dieser Browser ignoriert Schleifen wie "for (var in objekt)..."

    Hmmm... sowas?

    Gibt es dazu eine Alternative?

    Vielleicht alle einzeln probieren?

    Das Beispiel ist zu finden unter http://www.jelue.de/tifhu/domtest2.html

    Funzt in meinem Mozilla 1.0 RC3 (jaja, total veraltet ;-)) auch nicht so ganz.

    Es kommt zu _keiner_ Fehlermeldung beim Durchlaufen der for-Schleife. Es ist egal, wie sich der Browser identifiziert.

    Es macht den Eindruck, das Opera unbekannte Befehle einfach übergeht.
    Kann das sein?

    Klar. Machen die anderen Browser doch auch, oder?

    Gruesse,

    Bio

    1. Hallo Bio,

      Und bei mir ist es noch Samstag... sowas!

      Da war ich der Zeit wohl etwas voraus.

      Funzt in meinem Mozilla 1.0 RC3 (jaja, total veraltet ;-)) auch nicht so ganz.

      Das wundert mich. Mit dem Mozilla (auch wenn ich nicht so einen alten habe ;-)) hatte ich bisher am wenigsten Probleme.
      Schlimm waren nur IE und Opera, die eine Reihe von Objekten in ihrem Documentenobjektmodell (heisst das so?) haben, auf die sie selber nicht zugreifen dürfen.

      Klar. Machen die anderen Browser doch auch, oder?

      Ja und an innerHTML beim Opera habe ich mich ja auch schon gewöhnt, aber das er ganze Codesequenzen einfach ignoriert, hat mich dann doch gewundert.

      Gruesse,

      Günter

  2. Einen fröhlichen Sonntag an Alle!

    Moin Moin !

    Ich bin seit einiger Zeit dabei, mir eine Webseite zu schaffen, die alle Objekte, Eigenschaften und Attribute anzeigen soll, die ein Browser kennt.
    Beim IE 5.0 und 5.5, NS 4.73 und 6.2.2 und bei Mozilla bis 0.9.9 bin ich mehr oder weniger erfolgreich, nur der Opera 6.0 Build 1010 weigert sich, mir irgendetwas zu verraten?
    Dieser Browser ignoriert Schleifen wie "for (var in objekt)..."
    Gibt es dazu eine Alternative?
    Das Beispiel ist zu finden unter http://www.jelue.de/tifhu/domtest2.html
    Es kommt zu _keiner_ Fehlermeldung beim Durchlaufen der for-Schleife. Es ist egal, wie sich der Browser identifiziert.
    Es macht den Eindruck, das Opera unbekannte Befehle einfach übergeht.
    Kann das sein?
    Gruß
    Günter
    p.s.: getestet unter Win95, WinME und Win2000

    Ich habe etwas rumgetestet, Du kannst einfach die vorhandenen Objekte nicht "scannen", warum auch immer Opera das nicht zuläßt.

    Oder, um SelfHTML zu zitieren: http://selfhtml.teamone.de/javascript/sprache/schleifen.htm#for

    Die for in-Schleife können Sie in Opera nur auf selbstdefinierte Objekte und Variablen anwenden. Bei vordefinierte Objekten bleibt die Schleife wirkungslos.

    Alexander

    Mein Testsystem: Win2000pro englisch, Opera 6.03 Build 1107

    Testscript:

    <html>
    <body>
    <!-- jaja, der W3C-Validator springt im Dreieck, aber ich will ja nur Javascript testen ... -->
    <h1>Mal sehen:</h2>
    <h2>Testarray</h2>
    <script language="Javascript">
    <!--
    var testarray=new Array();
    testarray['Hund']='Bello';
    testarray['Katze']='Mietzi';
    testarray['Maus']='Mickey';

    for (var x in testarray) {
     document.write(x);
     document.writeln('<BR>');
    }
    //--></script>
    <h2>window-Object</h2>
    <script language="Javascript">
    <!--
    for (var y in window) {
     document.write(y);
     document.writeln('<BR>');
    }
    //--></script>
    <h2>eigenes Objekt</h2>
    <script language="Javascript">
    <!--
    function Testobj()
    {
     this.Hund='Bello';
     this.Katze='Mietzi';
     this.Maus='Mickey';
    }
    var testobj=new Testobj();
    for (var z in testobj) {
     document.write(z);
     document.writeln('<BR>');
    }
    //--></script>
    <h2>document-Object</h2>
    <script language="Javascript">
    <!--
    for (var y2 in window) {
     document.write(y2);
     document.writeln('<BR>');
    }
    //--></script>
    <h2>Paranoia: nochmal testarray</h2>
    <script language="Javascript">
    <!--
    var testarray2=new Array();
    testarray2['Hund']='Bello';
    testarray2['Katze']='Mietzi';
    testarray2['Maus']='Mickey';

    for (var x2 in testarray) {
     document.write(x2);
     document.writeln('<BR>');
    }
    //--></script>
    <h2>Das war's</h2>

    Ausgabe:

    Mal sehen:

    Testarray

    Hund
    Katze
    Maus

    window-Object

    eigenes Objekt

    Hund
    Katze
    Maus

    document-Object

    Paranoia: nochmal testarray

    Hund
    Katze
    Maus

    Das war's

    1. Hallo Alexander,
      Danke für Deine Hinweise!

      Die for in-Schleife können Sie in Opera nur auf selbstdefinierte Objekte und Variablen anwenden. Bei vordefinierte Objekten bleibt die Schleife wirkungslos.

      Da hilft dann für die Benutzer von Opera nur Abwarten.
      Ich habe noch ein direkteres Ansprechen wie for (i=1;i<document.length;i++) oder var Doc0 = document[0] oder var myDoc = document und weitere Verzweiflungsaktionen ausprobiert, aber es hilft alles nicht.

      Gruß
      Günter