Fenster mit fester Größe nach Vorladen von Bildern öffnen
stefan
- javascript
Hallo,
nach dem Azeigen einer Startseite und dem Vorladen von Bildern soll meine eigentliche Homepage automatisch geöffnet werden. Dies gelingt mir auch mit unten stehendem Script. Auf diese Weise wird jedoch der neue Inhalt im gleichen Fenster geöffnet. Mir ist es jedoch wichtig, dass das Fenster für die Homepage eine vordefinierte Größe hat und dass keine Scrollbalken erscheinen. Dies kann auch gerne in einem neuen Fenster geschehen.
Ich verwende folgendes Script:
<script language="JavaScript1.1">
var locationAfterPreload = "frames/info.htm" // URL of the page after preload finishes
var lengthOfPreloadBar = 400 // Length of preload bar (in pixels)
var heightOfPreloadBar = 2 // Height of preload bar (in pixels)
var yourImages = new Array("frames/Bilder/01.jpg","frames/Bilder/02.jpg","frames/Bilder/03.jpg")
// Do not modify anything beyond this point!
if (document.images) {
var dots = new Array()
dots[0] = new Image(1,1)
dots[0].src = "black.gif" // default preloadbar color (note: You can substitute it with your image, but it has to be 1x1 size)
dots[1] = new Image(1,1)
dots[1].src = "blue.gif" // color of bar as preloading progresses (same note as above)
var preImages = new Array(),coverage = Math.floor(lengthOfPreloadBar/yourImages.length),currCount = 0
var loaded = new Array(),i,covered,timerID
var leftOverWidth = lengthOfPreloadBar%coverage
}
function loadImages() {
for (i = 0; i < yourImages.length; i++) {
preImages[i] = new Image()
preImages[i].src = yourImages[i]
}
for (i = 0; i < preImages.length; i++) {
loaded[i] = false
}
checkLoad()
}
function checkLoad() {
if (currCount == preImages.length) {
location.replace(locationAfterPreload)
return
}
for (i = 0; i <= preImages.length; i++) {
if (loaded[i] == false && preImages[i].complete) {
loaded[i] = true
eval("document.img" + currCount + ".src=dots[1].src")
currCount++ }
}
timerID = setTimeout("checkLoad()",10)
}
// end hiding -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p align="center">
<script language="javascript1.1">
<!-- begin hiding
// It is recommended that you put a link to the target URL just in case if the visitor wants to skip preloading
// for some reason, or his browser doesn't support JavaScript image object.
if (document.images) {
var preloadBar = ''
for (i = 0; i < yourImages.length-1; i++) {
preloadBar += '<img src="' + dots[0].src + '" width="' + coverage + '" height="' + heightOfPreloadBar + '" name="img' + i + '" align="absmiddle">'
}
preloadBar += '<img src="' + dots[0].src + '" width="' + (leftOverWidth+coverage) + '" height="' + heightOfPreloadBar + '" name="img' + (yourImages.length-1) + '" align="absmiddle">'
document.write(preloadBar)
loadImages()
}
// end hiding -->
</script>
Ich hoffe, dass mir jemand bei dieser Fragestellung weiterhelfen kann.
Auch ein Alternativvorschlag wäre willkommen (z.B. ein Script welches auf der Homepage zunächst die Bilder lädt und dann erst die Seite anzeigt. Dann kann ich das Problem mit der Fenstergröße mit dem WinOpen-Befehl auf der Startseite umgehen)!
Ich bin übrigens Javascript-Anfänger. Die Antwort darf daher nicht allzu kompliziert ausfallen ;-)
Vielen Dank schon mal im Voraus, Stefan
Hallo stefan,
Mir ist es jedoch wichtig, dass das Fenster für die Homepage eine vordefinierte Größe hat und dass keine Scrollbalken erscheinen. Dies kann auch gerne in einem neuen Fenster geschehen.
Prinzipiell kannst Du die Größe von Fenstern verändern, siehe http://de.selfhtml.org/javascript/objekte/window.htm#resize_to. Viele Benutzer finden so etwas aber nicht gut, bessere Browser lassen sich so konfigurieren, dass das Browserfenster sich nicht in der Größe verändern lässt.
Ähnliches gilt für das Öffnen neuer Fenster (auch PopUp-Fenster genannt). Wie Du ein solches Fenster öffnest findest Du unter http://de.selfhtml.org/javascript/objekte/window.htm#open. Ich möchte anmerken, dass nicht jeder PopUps mag und dass sich das ungefragte Öffnen von neuen Browserfenstern verhindern lässt.
Auch ein Alternativvorschlag wäre willkommen (z.B. ein Script welches auf der Homepage zunächst die Bilder lädt und dann erst die Seite anzeigt. Dann kann ich das Problem mit der Fenstergröße mit dem WinOpen-Befehl auf der Startseite umgehen)!
Das Vorladen von Bildern halte ich persönlich für extrem nervend - und ich verlasse solche Seiten normalerweise, bevor alles geladen ist und komme nie wieder :-)
Ich bin übrigens Javascript-Anfänger. Die Antwort darf daher nicht allzu kompliziert ausfallen ;-)
Das ist kein Problem, das war hier jeder einmal. Das kannst Du aber ändern. Ich lege Dir dazu das Javascript-Kapitel von SelfHTML http://de.selfhtml.org/javascript/objekte/window.htm#open ans Herz. Viel Erfolg.
Freundliche Grüsse,
Vinzenz
nach dem Azeigen einer Startseite und dem Vorladen von Bildern soll meine eigentliche Homepage automatisch geöffnet werden. Dies gelingt mir auch mit unten stehendem Script. Auf diese Weise wird jedoch der neue Inhalt im gleichen Fenster geöffnet. Mir ist es jedoch wichtig, dass das Fenster für die Homepage eine vordefinierte Größe hat und dass keine Scrollbalken erscheinen. Dies kann auch gerne in einem neuen Fenster geschehen.
Ich verwende folgendes Script:
Das ist furchtbar. Auch das vorladen von Bildern ist ziemlicher Quatsch, da einerseits der IE Probleme mit dem Caching hat (was genau dazu führt, das deine Bilder u.U. 2 mal geladen werden müssen) anderseits der Browser an sich das sowieso macht (sofern die Einstellungen stimen).
Warum sollte man sowas also mit zweifelhaften Skripten tun?
Daneben hat das Skript einen entscheidenden Fehler, es läuft unter Umständen unendlich lang wenn es ein Bild nicht findet (z.b. wegen Tippfehler), dies läßt sich ohne Probleme vermeiden.
Hier eines was diesen Fehler nicht hat
http://home.arcor.de/struebig/computer/javascript/source/preloader.html
Aber dein ganzer Ansatz ist sehr zweifelhaft. Du versuchst den Besucher zu bevormuden, weil du der Meinung bist ein Fenster muss eine (für dich) optimale größe haben. Du musst dir klar werden, dass du nicht vorhersagen kannst, mit welchen vorrausetzungen der surfer auf deine Seite kommt. Es gibt z.b. sehbehinderte, die ihre Schrift riesig einstellen müssen, es gibt Firmennetze in denen JS ausgefiltert wird, es gibt PDAs (übliche Anzeigegröße 320x240), und so weiter und so fort.
Damit fallen alle vorhersagen wie die Seite aussieht flach. Lass dich beim entwerfen deiner Seite nicht dazu verleiten deine Einstellung als das Maß aller Dinge zu sehen.
Struppi.