Moin,
[...] das mein im Body voreingestelltes Hintergrundbild (no-repeat und positioniert) für Auflösungen unter 1024x768 zu groß ist und das ganze Layout zerreißt.
dann machst du irgendwas gravierend falsch. Das Hintergrundbild beeinflusst das Layout normalerweise überhaupt nicht. Es wird -wenn das zugehörige Element kleiner ist als das Bild- einfach an den Rändern abgeschnitten und gut is'.
Ich möchte nun die Auflösung auslesen und für den Fall das jemand eine geringere Auflösung hat ein kleineres Hintergrundbild eintauschen.
Dir ist hoffentlich klar, dass die Bildschirmauflösung *überhaupt nichts* mit der Größe des Browserfensters zu tun hat?
Ich dachte eigentlich das es so funktionieren müßte, tut es aber nicht:
if(screen.width<1024)
document.body.style.background = 'url('bg.jpg')';
Achte auf die Anführungszeichen: Wo fängt der String an, wo hört er auf? Du weist der background-Eigenschaft den Wert 'url(' zu, danach kommt noch etwas sinnloses Kauderwelsch, was zu einen Syntaxfehler führt und letztendlich dazu, dass die Anweisung nicht ausgeführt wird. Das hättest du aber auch an der Browser-Fehlermeldung erkennen müssen.
so aber auch nicht:
if(screen.width<1024)
document.getElementsByTagName('body')[0].background = 'bg.jpg'
Hat das body-Element eine Eigenschaft background? Im IE könnte das aus Kulanz funktionieren.
Aber nochmal: Es ist unsinnig, irgendwelche Anzeigedetails abhängig von der Bildschirmgröße zu setzen. Wenn überhaupt, dann frage die Größe des Browserfensters ab, nicht des Bildschirms.
Für ein simples Hintergrundbild sollte aber IMHO nicht einmal das nötig sein. Denn es vermittelt ja keinen relevanten Inhalt, sondern ist nur Dekoration. Gestalte es also so, dass die wesentlichen Bildbereiche auch bei geringen Fenstergrößen sichtbar sind, und dass der Hintergrund bei größerem Fenster gleichmäßig in eine Hintergrundfarbe ausläuft.
So long,
Martin
Die letzten Worte des stotternden Beifahrers:
Frei... frei... frei... freilich kommt da was!!