window.open dann resizeTo und Opera macht die Scrollbars weg!
Heike
- javascript
0 molily0 Cyx230 Ingo Turski
Ich öffne ein Fenster mit:
win = window.open(file,name,'width=800,height=600,scrollbars=yes');
Dann will ich an die maximale Fenstergröße anpassen mit:
win.resizeTo(screen.width+10,screen.height+30);
und plötzlich sind im Opera (7.22) die Scrollbars weg, obwohl ich doch "yes" gesagt hatte.
Muß auch nur in den Browsern der neusetn Generation laufen.
(IE 5.5, NS7, Opera7, Mozilla 1.3)
Hat jemand eine Lösung für mein kleines Problem?
Ich öffne ein Fenster mit:
win = window.open(file,name,'width=800,height=600,scrollbars=yes');Dann will ich an die maximale Fenstergröße anpassen mit:
win.resizeTo(screen.width+10,screen.height+30);und plötzlich sind im Opera (7.22) die Scrollbars weg, obwohl ich doch "yes" gesagt hatte.
Was heißt »sie sind weg«? Wenn du im Opera im Tab-Modus ein Fenster mit der Größe der Bildschirmbreite und -höhe öffnest, verschwinden zwangsläufig Scrollbars, weil vom Tab-Fenster die soviel gesehen werden kann, wie die Größe des Innenbereichs des Opera-Fensters zulässt. Das ist eben das Konzept des »Multiple Document Interface«. Selbst wenn das Opera-Fenster den gesamten Bildschirm ausfüllt und Taskleisten usw. abgeschaltet sind, ist ein Tab-Fenster darin mit der Größe des gesamten Bildschirms nicht vollständig sichtbar. Das gilt natürlich insbesondere, wenn du zu screen.width und screen.height noch Zahlen hinzuaddierst (obwohl Opera diese ignorieren sollte). Die Scrollbars sind also höchstwahrscheinlich nicht weg, sondern Teile des Fensters sind nicht sichtbar und damit auch die Scrollbars nicht. Beispielsweise kann das Fenster nach rechts hin nicht abgeschlossen sein, das zeigt sich etwa dadurch, dass die Buttons Minimieren, Maximieren und Schließen ebenfalls nicht sichtbar sind. Wenn du das Tab-Fenster maximierst (z.B. durch Doppelklick auf die Titelleiste), sollten die angeschalteten Scrollbars sichtbar werden. Durch den resizeTo-Befehl sollte Opera auf jeden Fall nicht plötzlich die Scrollbars abschalten, sie geraten höchstens aus dem Blickfeld. Da gibt es keinen Workaround, weil das integrierte Mehrfenster-Konzept von Opera es nicht zulässt, dass ein Tab-Fenster den Bildschirm ausfüllen kann. Es gibt auch keine direkte Möglichkeit, window.open()-Fenster im Opera zu maximieren, dazu wäre ein target="_blank"-Link in jedem Fall effektiver.
Auf dasselbe Problem wirst du sowieso auch in anderen Browsern stoßen, da screen.height und screen.width (schon gar nicht größere Werte!) nichts mit dem zur Verfügung stehenden Platz zu tun haben. Sprich, was im Opera im kleinen passiert, wird in anderen Browsern im großen passieren: Die Scrollbars verschwinden auch im Nirgendwo, sie verstecken sich entweder hinter Taskleisten oder sind per se außerhalb des Bildschirms. Insofern wären eher availHeight/availWidth http://selfhtml.teamone.de/javascript/objekte/screen.htm#avail_height angemessener, nur löst das nicht das Problem mit Browsern, die ein anderes Fenstermanagement haben.
Hallo,
und plötzlich sind im Opera (7.22) die Scrollbars weg, obwohl ich doch "yes" gesagt hatte.
da sind aber bei mir offenbar von Anfang an keine Scrollbars vorhanden, unabhängig von resizeTo, mit verschiedenen Versionen (7.21, 7.5p), wenn die Seite klein genug ist.
Also werden die Scrollbars offenbar automatisch angepasst bzw. hängen bei dem Code von der betr. Seite ab.
Grüsse
Cyx23
Hi,
warum machst Du es auch so umständlich?
Ich öffne ein Fenster mit:
win = window.open(file,name,'width=800,height=600,scrollbars=yes');Dann will ich an die maximale Fenstergröße anpassen mit:
Was hindert Dich daran, das Fenster _ohne_ Größenangabe zu öffnen? Dann wird es automatisch den zur Verfügung stehenden Raum einnehmen.
freundliche Grüße
Ingo