PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript Bildgröße vergleichen


maximum
2013-01-09, 13:46:27
Hallo, ich sitze an folgendem Problem:

Ich habe eine Webseite, die dynamische Bilder generiert. Die IDs/Namen der Bilder sind mir vorher nicht bekannt.
Es gibt aber nur eine begrenzte Anzahl an verschiedenen Bildern (zB 100).
Alle Bilder haben unterschiedliche Größen.

Wie kann ich mit Javascript auslesen, welche Bilder auf der Seite angezeigt werden? Das ganze soll ein Greasemonkeyscript werden und pro Bild einen vorher festgelegten Wert auf eine Endsumme aufsummieren.

Ein Denkanstoß reicht schon. Irgendwie mit DOM über die verschiedenen Bildhöhen/-breiten muss es ja gehen.

Frucht-Tiger
2013-01-09, 14:03:48
Mit Greasemonkey kann ich dir nicht weiterhelfen, da kenn ich mich nicht aus. Weißt du denn an welcher Stelle(bzw. welches Element/Container) die Bilder auftauchen? Dann könntest du dir das holen und über den Inhalt iterieren, die Attribute wie width oder height auslesen und aufaddieren. Alternativ könntest du dir alle img Elemente der Seite geben lassen und evt. nach deinen Kriterien filtern und auswerten.

Ist jetzt nicht gerade viel Info, aber vielleicht reicht es dir ja schon irgendwie um bei stackoverflow einen passenden Code-Schnipsel zu finden.

z.B. hier will einer alle Link Elemente auslesen mit Javascript http://stackoverflow.com/questions/1295379/get-all-a-elements-in-a-page-using-javascript das mit <img> würde die alle Bilder geben die so dargestellt werden.

maximum
2013-01-09, 14:59:07
Danke für die Antwort, habs jetzt so ähnlich gelöst:


var a = document.getElementsByTagName("IMG");
for (var i=0, len=a.length; i<len; i++)
{
...
}

maximum
2013-01-10, 08:20:07
Das funktioniert schon ganz gut. Nur habe ich 2 Bilder entdeckt, die gleichgroß sind, d.h. Bildhöhe und -breite stimmen überein. Gibt es noch andere Kriterien, die sich auswerten lassen, wenn kein Alt-Tag da ist?

Irgendwie muss ich sie unterscheiden und das via Javascript. Unterschiedliche Größe gemessen an den Bytes haben die 2 Bilder übrigens, aber:

xyzbild.size liefert undefined als Wert zurück


EDIT:

Habs hinbekommen...

Bildgröße in Bytes lässt sich via ActiveX/XMLHttpRequest auslesen. Ganz schöne Friemelei war das. War schon drauf und dran die Bilder in HTML Canvas umzuwandeln und einzelne Pixel nach Farbe zu vergleichen (hat nur nicht so geklappt wie ich wollte).