darph
2007-02-07, 17:21:11
Also irgendwie... eh. hm.
Zunächst mal eine einfache HTML Datei mit ein paar Bildern.
<html>
<body style="background-color: #cccccc;">
1.<img src="http://www.lala.de/fuxx0r.png">. <br><br>
2.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
3.<img src="http://www.lala.de/fuxx0r.png" alt="uff." title="Leute beim fuxx0rn">. <br><br>
4.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
5.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
6.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
7.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
</body>
</html>
Der geneigte Betrachter wird ohne Zweifel feststellen, daß es in diesem hochkomplexen Dokument 7 (in Worten: sieben) Bilder gibt. Geben sollte. Egal. Sieben. Die Zahl soll sieben sein. Nicht fünf, nicht sechs und die acht scheidet völlig aus. Sieben ist die Zahl.
Nun gut.
Man stelle sich eine kleine imaginäre Extension für Firefox vor, welche in etwa folgenden Code enthält (gekürzt auf das Wesentliche):
function testMich(im, i) {
alert("Bild " + i);
}
function testMain() {
// Alle Bilder im Dokument
var imgs = window._content.document.getElementsByTagName("img");
alert("Anzahl " + imgs.length);
for (i = 0; i < imgs.length; i++) {
currentImage = imgs[i];
testMich(currentImage,i);
}
}
window.addEventListener("load",function() {testMain();} ,true);
Also: Sobald das onLoad-Event feuert, also sobald meine Seite geladen ist, bekomme ich einen Alert, der mir sagt, wie viele Bilder ich habe. Wir erinnern uns - sieben sind es. Das stimmt auch. Ich bekomme eine MessageBox und die sagt sieben. So weit so gut.
Dann wird die Methode testMich für jedes Bild (hier genannt 0 bis 6) aufgerufen. Dort gibt's nochmal einen Alert, der mir sagt "Ich packe gerade das so-und-so-vielte Bild an". Richtig?
Wieso bekomme ich bei oben beschriebener Seite dann nur Alerts mit "0", "1", "2", und "3" und wieso ist das (ließ sich durch geschicktes benennen des alt-Attributs herausfinden) IMMER JEDES ZWEITE BILD?
Jedes Zweite Bild wird ignoriert.
Bin ich doof? Hab ich was falsch gemacht? Da steht i++, also i = i+1. Plus eins. Wieso zählt meine Schleife in Zweierschritten? Bin ich blind? Wo ist mein Fehler? Wahrscheinlich seh ich mal wieder den Wald vor lauter Bäumen nicht, aber... eh... halp! ;(
Zunächst mal eine einfache HTML Datei mit ein paar Bildern.
<html>
<body style="background-color: #cccccc;">
1.<img src="http://www.lala.de/fuxx0r.png">. <br><br>
2.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
3.<img src="http://www.lala.de/fuxx0r.png" alt="uff." title="Leute beim fuxx0rn">. <br><br>
4.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
5.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
6.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
7.<img src="http://www.lala.de/fuxx0r.png" alt="uff.">. <br><br>
</body>
</html>
Der geneigte Betrachter wird ohne Zweifel feststellen, daß es in diesem hochkomplexen Dokument 7 (in Worten: sieben) Bilder gibt. Geben sollte. Egal. Sieben. Die Zahl soll sieben sein. Nicht fünf, nicht sechs und die acht scheidet völlig aus. Sieben ist die Zahl.
Nun gut.
Man stelle sich eine kleine imaginäre Extension für Firefox vor, welche in etwa folgenden Code enthält (gekürzt auf das Wesentliche):
function testMich(im, i) {
alert("Bild " + i);
}
function testMain() {
// Alle Bilder im Dokument
var imgs = window._content.document.getElementsByTagName("img");
alert("Anzahl " + imgs.length);
for (i = 0; i < imgs.length; i++) {
currentImage = imgs[i];
testMich(currentImage,i);
}
}
window.addEventListener("load",function() {testMain();} ,true);
Also: Sobald das onLoad-Event feuert, also sobald meine Seite geladen ist, bekomme ich einen Alert, der mir sagt, wie viele Bilder ich habe. Wir erinnern uns - sieben sind es. Das stimmt auch. Ich bekomme eine MessageBox und die sagt sieben. So weit so gut.
Dann wird die Methode testMich für jedes Bild (hier genannt 0 bis 6) aufgerufen. Dort gibt's nochmal einen Alert, der mir sagt "Ich packe gerade das so-und-so-vielte Bild an". Richtig?
Wieso bekomme ich bei oben beschriebener Seite dann nur Alerts mit "0", "1", "2", und "3" und wieso ist das (ließ sich durch geschicktes benennen des alt-Attributs herausfinden) IMMER JEDES ZWEITE BILD?
Jedes Zweite Bild wird ignoriert.
Bin ich doof? Hab ich was falsch gemacht? Da steht i++, also i = i+1. Plus eins. Wieso zählt meine Schleife in Zweierschritten? Bin ich blind? Wo ist mein Fehler? Wahrscheinlich seh ich mal wieder den Wald vor lauter Bäumen nicht, aber... eh... halp! ;(