onLoad Fenster zentrieren??
Jonas
- javascript
Hallo!
In folgendem Script ist der Wurm drin:
<html>
<head>
<title>onLoad Fenster zentrieren</title>
</head>
<script language="JavaScript">
xsize = 600;
ysize = 400;
ScreenWidth = screen.width;
ScreenHeight = screen.height;
xpos = (ScreenWidth/2)-(xsize/2);
ypos = (ScreenHeight/2)-(ysize/2);
window.moveTo(xpos,ypos);
window.resizeTo(xsize,ysize);
</script>
</head>
<body onload="javascript:window.resizeTo()">
</body>
</html>
oder siehe http://jonaswolf.com/onLoadzentriert.htm
Wie bekomme ich nun noch das Fenster zentriert? :(
Jonas
Hi,
Wie bekomme ich nun noch das Fenster zentriert? :(
Meine Fehlerkonsole sagt folgendes:
Fehler: Not enough arguments [nsIDOMWindowInternal.resizeTo] = NS_ERROR_XPC_NOT_ENOUGH_ARGS
Quelldatei: http://jonaswolf.com/onLoadzentriert.htm
Zeile: 1
Was ist für dich daran unverständlich? Ich kann daraus exakt ersehen, wo das Problem liegt, denn offensichtlich hast du bei resizeTo die falsche ANzahl an Parametern.
Nachtrag:
<body onload="javascript:window.resizeTo()">
Das dir nicht auffällt, das du hier keine Prameter angibst, schreib ich, zu deinen Gunsten, der Uhrzeit zu.
Nachtrag:
<body onload="javascript:window.resizeTo()">
Das dir nicht auffällt, das du hier keine Prameter angibst, schreib ich, zu deinen Gunsten, der Uhrzeit zu.
Nachtrag:
<body onload="javascript:window.resizeTo()">
Das dir nicht auffällt, das du hier keine Prameter angibst, schreib ich, zu deinen Gunsten, der Uhrzeit zu.
Hi!
Ich habe des Rätsels Lösung andersweitig auftreiben können! Trotzdem danke! Was ich benötigt habe, ist:
function moveAndResize() {
var targetW = 600;
var targetH = 400;
this.resizeTo(targetW, targetH);
this.moveTo(screen.availWidth / 2 - targetW / 2, screen.availHeight / 2 - targetH / 2);
}
window.onload = moveAndResize;
Mein <body onload="[...]"> war in diesem Falle überflüssig, ja...
Schönes WE!
Lieber Jonas,
<script language="JavaScript">
es empfiehlt sich, das "language"-Attribut für Script-Elemente nicht mehr zu verwenden. Nimm bitte in Zukunft das "type"-Attribut und schreibe <script type="text/javascript">
.
xsize = 600;
ysize = 400;
ScreenWidth = screen.width;
ScreenHeight = screen.height;
xpos = (ScreenWidth/2)-(xsize/2);
ypos = (ScreenHeight/2)-(ysize/2);
window.moveTo(xpos,ypos);
window.resizeTo(xsize,ysize);
Dieser Code wird beim Laden der Seite _sofort_ ausgeführt, egal, ob das Dokument bereits komplett geladen wurde, oder nicht... Vielleicht ist das ja so gewollt? Ich will es jedenfalls nicht und habe meinem Browser verboten, solche Größenänderungen vorzunehmen.
</script>
</head>
<body onload="javascript:window.resizeTo()">
Die Größenänderung wurde (bei erlaubenden Browsern) bereits vorgenommen. Was möchtest Du mit dieser onload-Geschichte erreichen? Dass Die von Dir benutzte Methode zwei Parameter erwartet, Du diese aber hier nicht mitlieferst, wurd Dir ja schon gezeigt.
</body>
</html>
Man kann (ScreenWidth/2)-(xsize/2) auch als (ScreenWidth-xsize)/2 schreiben (Distributiv-Gesetz), aber vielleicht is das nicht wirklich viel kürzer...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Jonas,
Wie bekomme ich nun noch das Fenster zentriert? :(
auch wenn du nun eine funktionierende Lösung hast, denk bitte nochmal drüber nach:
Genau solche Effekte, wie du sie hier realisieren möchtest, also z.B. das Verändern von Fensterposition und -größe, bringen Javascript immer wieder in Verruf. Ich weiß schon selbst, an welcher Stelle und in welcher Größe ich mein Browserfenster haben will, und ich möchte mir das nicht vom Autor der Seite aufs Auge drücken lassen. Die Konsequenz ist, dass ich in meinem Browser die Möglichkeiten von Javascript mehr und mehr einschränke, um solche lästigen Effekte abzustellen.
Inzwischen bin ich dabei so weit gekommen, dass ich JS für unbekannte Seiten ganz abgestellt habe und nur noch auf ein paar ausgewählten Seiten zulasse. Eigentlich schade für die paar neuen, fremden Seiten, die damit Sinnvolles anstellen; aber ich sehe nicht ein, dass ich, nur um auf einer Seite in den Genuss einer sinnvollen Hilfsfunktion zu kommen, auf vielen anderen Seiten Nervensägen ertragen soll.
Schönen Tag noch,
Martin