Statuszeile beim Laden des Hintergrunds
Marion
- javascript
Hallo!
Normalerweise wird ja das Laden eines Hintergrundbildes in der Statuszeile angezeigt. Bei mir ist es jedoch so, daß ich den Hintergrund nicht normal im body-Bereich lade, sondern abhängig von der Auflösung mit Javascript:
if(screen.width >=1024)
document.getElementsByTagName("body")[0].style.backgroundImage = "url(bilder/koala1024.jpg)";
else
document.getElementsByTagName("body")[0].style.backgroundImage = "url(bilder/koala10.jpg)";
Dabei wird in der Statuszeile aber nichts angezeigt! Benutzer mit einem langsamen Modem könnten also glauben, daß kein Hintergrundbild mehr kommt.
Kennt ihr einen Befehl, mit dem ich die Statuszeile beim Laden verändern kann?
lg,
Marion
Hallo Marion!
Dabei wird in der Statuszeile aber nichts angezeigt! Benutzer mit einem langsamen Modem könnten also glauben, daß kein Hintergrundbild mehr kommt.
Was ist daran so schlimm?
Meine Meinung:
Entweder die Seite enthält genug Inhalt, dass der Besucher etwas zu lesen hat, dann hätte er einen Aha-Effekt, wenn der Hintergrund komplett ist.
Oder, die Seite enthält keine oder zu wenig Informationen, dann wartet er auch nicht auf das Hintergrundbild.
Übrigens, bei mir zeigt die Statuszeile das laden an, bis das Frameset (mit Mäusehintergrund) komplett ist.
Kennt ihr einen Befehl, mit dem ich die Statuszeile beim Laden verändern kann?
lies hier:http://selfhtml.teamone.de/javascript/objekte/window.htm#default_status
Bedenke aber bitte, dass funktioniert nicht in jedem Browser,
und die Statuszeeile meines Browsers ist _meine_ Statuszeile, ich
will dort die Meldungen meines Browsers sehen und nicht unbedingt dass, was ein Seitenersteller dort anzuzeigen wünscht.
MFG
Detlef
Hallo Detlef,
prinzipell hast du schon recht, daß die Seite genug Inhalt habe sollte. Ich war nur sehr irritiert davon, daß in der Statuszeile "fertig" steht, obwohl das Hintergrundbild noch nicht geladen wurde. Und das ist eben erst der Fall, seit ich Javascript zum Laden den HGBilds verwende.
Übrigens, bei mir zeigt die Statuszeile das laden an, bis das Frameset (mit Mäusehintergrund) komplett ist.
Meinst du auch die richtige Seite? (members.chello.at/smillara/index2.htm)
Es geht nämlich um das Koala-Hintergrundbild, nicht um den Mäusehintergrund.
lies hier:http://selfhtml.teamone.de/javascript/objekte/window.htm#default_status
Der Befehl nützt mir leider nicht viel, da ich die Statuszeile ja nicht ständig verändern will (solange nichts passiert), sondern nur für die Dauer des Ladens der Seite.
Trotzdem danke
Marion
Hi,
Meinst du auch die richtige Seite? (members.chello.at/smillara/index2.htm)
du weisst, daß viele besucher hier nur die grüne hintergrundfarbe sehen? und manche eine schriftfarbe, die nicht zum hintergrund passt?
freundliche Grüße
Ingo
Hi,
du weisst, daß viele besucher hier nur die grüne hintergrundfarbe sehen? und manche eine schriftfarbe, die nicht zum hintergrund passt?
Warum "viele"? Meinst du jene, die Javascript deaktiviert haben?
Oder was meinst du?
Wenn ich alternativ für nicht Javascript-Benutzer einen Hintergrund bei body angebe, hab ich dann bei einer der beiden Auflösungen den unschönen Effekt, daß die Graphik erst nach eine Verzögerung zur eigentlichen wechselt...
lg
Marion
Hi,
Warum "viele"? Meinst du jene, die Javascript deaktiviert haben?
Ja.
Wenn ich alternativ für nicht Javascript-Benutzer einen Hintergrund bei body angebe, hab ich dann bei einer der beiden Auflösungen den unschönen Effekt, daß die Graphik erst nach eine Verzögerung zur eigentlichen wechselt...
Schon richtig.
Nur.. was ist negativer: wenn die paar Besucher mit 800er-Auflösung kurzzeitig einen anderen Hintergrund sehen oder Besucher ohne Javascript gar keinen sehen?
Außerdem ist das kleinere Hintergrundbild hier wirklich nicht nötig und die Auflösung sagt ja auch nichts über die Fenstergröße aus.
Schaue Dir die Seite lieber mal in einem 1600px breitem Fenster an. Da kommt dann noch ein Koala dazu.;-)
freundliche Grüße
Ingo
Hallo Marion
Übrigens, bei mir zeigt die Statuszeile das laden an, bis das Frameset (mit Mäusehintergrund) komplett ist.
Es geht nämlich um das Koala-Hintergrundbild, nicht um den Mäusehintergrund.
Mein Fehler, natürlich die Koalas.
Der Befehl nützt mir leider nicht viel, da ich die Statuszeile ja nicht ständig verändern will (solange nichts passiert), sondern nur für die Dauer des Ladens der Seite.
Welcher Befehl?
Lies nochmal!
"defaultStatus" ist eine Eigenschaft, diese kann _gelesen_ und geändert werden.
Also die Eigenschaft:
Ich würde das nicht tun.
Noch ein paar Fragen als Anregung:
Sind zwei verschiedene Hintergrundbilder wirklich nötig?
Was hat die Bildschirmbreite mit der Breite meines Browserfensters zu tun?
Was sehe ich, wenn mein Browser kein Javascript unterstützt oder die verwendeten Objekte nicht, oder Javascript deaktiviert ist?
Ach so - "optimiert für IE6...", also gegen alle anderen Browser?
Keine DOCTYPE-Angabe, also soll die Darstellung eher vom Zufall bestimmt sein statt von den offiziellen HTML-Spezifikationen?
MFG
Detlef
Noch ein paar Fragen als Anregung:
Sind zwei verschiedene Hintergrundbilder wirklich nötig?
Was hat die Bildschirmbreite mit der Breite meines Browserfensters zu tun?
Was sehe ich, wenn mein Browser kein Javascript unterstützt oder die verwendeten Objekte nicht, oder Javascript deaktiviert ist?
Ach so - "optimiert für IE6...", also gegen alle anderen Browser?Keine DOCTYPE-Angabe, also soll die Darstellung eher vom Zufall bestimmt sein statt von den offiziellen HTML-Spezifikationen?
Zu deinen Anregungen:
Das die Auflösung nichts mit dem Browserfenster zu tun hat, weiß ich selber, nur wird dir bekannt sein, daß der Befehl zum Fenstergröße auslesen nur in Netscape funktioniert...
und "optimiert für IE6" soll nicht heißen daß ich gegen andere Browser bin, sondern daß ich eben nicht so ein *Profi* wie du bin und es für alle optimieren kann. Zumal der Laie nunmal mit IE surft und eben hauptsächliche solche Leute auf meine Seite schauen.
Und mit doctype kann ich nichts anfangen - aber wie gesagt - nicht jeder ist ein Profi.
Alles klar?
Marion
Hallo Marion
daß der Befehl zum Fenstergröße auslesen nur in Netscape funktioniert...
Kleiner Irrtum, sie verstehen nur nicht die gleiche Eigenschaft, schau dir dies an:
http://selfhtml.teamone.de/javascript/beispiele/fensterueberwachen.htm
nicht so ein *Profi* wie du bin und es für alle optimieren kann.
Ich bin absolut kein Profi! (s. Signatur)
Und mit doctype kann ich nichts anfangen
Lies hier:
http://selfhtml.teamone.de/html/allgemein/grundgeruest.htm#dokumenttyp
Ich würde wahrscheinlich folgendes tun:
Die Hintergrundfarbe besser an die Farben den Hintergrundbildes anpassen.
Die Style-Angaben aus dem Body entfernen und stattdessen gleich im Stylebereich notieren, z.B. statt "<body style="..." oben wo auch "a:hover..." steht
"body {background: #A3A194 url(bilder/koala1024.jpg) no-repeat center}"einfügen.
Und schau dir das dann einmal ohne das Script an.
Genauso mit den anderen Styleangaben, die den Elementen zugeordnet werden können oder/und mittels Klassen.
Beschäftige dich dazu mit:
http://selfhtml.teamone.de/css/index.htm
MFG
Detlef
Hallo Marion,
hoffentlich hast du nicht schon entnervt aufgehört meine Postings zu lesen.
Mir ist noch ein Gedanken gekommen, wie du die Ladeanzeige absichern könntest, ohne dich selbst an der Statuszeile vergreifen zu müssen.
In das Script, welches Hintergrundbild wechselst kannst du jeweils mit document.write (http://selfhtml.teamone.de/javascript/objekte/document.htm#write) das jewilige Bild mit einer Höhe und Breite von jeweils einem Pixel in den Body schreiben. Der Browser lädt dieses dann auch nur einmal, aber wie jedes normale Bild. Das einen Pixel große Bild ist vor dem Hintergrund praktisch unsichtbar.
MFG
Detlef
hi,
"defaultStatus" ist eine Eigenschaft, diese kann _gelesen_ und geändert werden.
allerdings würde ich window.status heranziehen, und nicht defaultStatus - denn der status soll ja eben nur temporär während des ladens sein, und nicht "default".
http://selfhtml.teamone.de/javascript/objekte/window.htm#status
gruss,
wahsaga
Hallo wahsaga!
allerdings würde ich window.status heranziehen, und nicht defaultStatus - denn der status soll ja eben nur temporär während des ladens sein, und nicht "default".
Du hast sicher recht.
Da selbst keine Statuszeilen manipuliere und also ich keine Erfahrungen damit habe, stellt sich mir die Frage:
Wer oder was setzt den Status wieder zurück?
Wenn ich "defaultStatus" verwende, weiß ich, dass ich diesen selbst wieder zurücksetzen muss.
Bis ich das gemacht habe, wird mein Text angezeigt, aber nur, wenn der Browser nichts anderes anzuzeigen hat.
MFG
Detlef
hi,
Wer oder was setzt den Status wieder zurück?
die nächste durch den browser selbst veranlasste statusänderung, würde ich sagen.
also das überfahren eines links durch den user o.ä.
wenn der user sowas schon _vor_ dem fertig laden macht, wäre also mein status schon wieder geschichte - man müsste ihn also so lange in einer setInterval-schleife permanent ändern.
Wenn ich "defaultStatus" verwende, weiß ich, dass ich diesen selbst wieder zurücksetzen muss.
jetzt, wo ich genauer drüber nachgedacht habe, scheint mir deine methode doch die praktikablere - meine wäre vielleicht die theoretisch richtigere gewesen :-)
gruss,
wahsaga
Hallo wahsaga
jetzt, wo ich genauer drüber nachgedacht habe, scheint mir deine methode doch die praktikablere - meine wäre vielleicht die theoretisch richtigere gewesen :-)
Mir stellt sich dabei noch die Frage, woher weiß ich bzw. mein Script, dass das Hintergrundbild fertig geladen ist?
MFG
Detlef
Hallo,
Normalerweise wird ja das Laden eines Hintergrundbildes in der Statuszeile angezeigt.
da habe ich eher den Eindruck dass einige moderne Browser etwas von ihren Temposchwächen ablenken möchten und dass "Normalerweise" das Laden nicht angezeigt wird, vielleicht noch abhängig von der Art der Einbindung per CSS.
Ansonsten ist mir als Besucher einer Seite auch grundsätzlich eine nicht manipulierte Statuszeile wichtig, während ich mich z.B. mit bunten Scrollleisten schon eher anfreunden kann.
Grüsse
Cyx23