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