HighDots Forums  

Fenstergroesse nach dem Inhalt anpassen

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Fenstergroesse nach dem Inhalt anpassen in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Sascha Bahl
 
Posts: n/a

Default Fenstergroesse nach dem Inhalt anpassen - 02-02-2005 , 03:40 AM






Hallo!

Ich suche eine Methode, die Fenstergröße so zu manipulieren das mein Inhalt
genau reinpasst. Ich habe nun schon versucht meinen Inhalt (Formular) in
eine Tabelle zu schreiben und über
document.getElementById("maintable").height

die Höhe der Tabelle auszulesen und daraufhin die Größe des Fenstern
anzupassen. Die Tabelle verändert ja seine Höhe, damit der Inhalt dort
reinpasst. Leider bekomme ich aber dann nicht mehr den korrekten Wert der
Höhe zurück.

Was mache ich denn da nun?

Sascha Bahl

Reply With Quote
  #2  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Fenstergroesse nach dem Inhalt anpassen - 02-02-2005 , 04:14 AM








Sascha Bahl wrote:


Quote:
Ich suche eine Methode, die Fenstergröße so zu manipulieren das mein Inhalt
genau reinpasst.
Du kannst ja mal
if (window.sizeToContent) {
window.sizeToContent();
}
versuchen, diese Methode wird von Mozilla Browsern wie der Mozilla
Suite, wie Netscape 7, wie Firefox unterstuetzt. Allerdings sind diese
Browser auch so konfigurierbar, dass Script die Groesse eines Fensters
gar nicht aendern darf. Und es gibt Minimalgroessen, ich glaube 100x100,
die nicht unterschritten werden koennen.

In Netscape 4 gibt es Eigenschaften
document.width
document.height
die die Groesse des Inhaltes angeben, in Fortsetzung von oben also
else if (typeof document.height != 'undefined') {
window.resizeTo(document.width, document.height);
}

In IE 6 braucht man je nach rendering mode
document.documentElement.scrollHeight
oder
document.body.scrollHeight
in Fortsetzung von oben also
else if (document.compatMode != 'BackCompat') {
window.resizeTo(document.documentElement.scrollWid th,
document.documentElement.scrollHeight);
}
else if (document.body && typeof document.body.scrollHeight !=
'undefined') {
window.resizeTo(document.body.scrollWidth, document.body.scrollHeight);
}

Auch IE 6 unter Windows XP SP2 zumindest mag aber je nach Konfiguration
Script das Veraendern des Fensters nicht erlauben.
Der obige Zweig fuer IE mag auch Auswirkungen in anderen Browsern wie
Opera 7 haben, da auch dort die Eigenschaften existieren, ob die aber
sonderlich genau sind, was den Inhalt angeht, habe ich nie probiert.

Und generell gilt insbesondere bei Browsern wie Opera oder Mozilla mit
Tabbed-Browsing, dass ein Versuch, ein Fenster an den Inhalt eines
Dokumentes anzupassen, den Benutzer zwingt (so das Script es schafft),
auch Dokumente in anderen Tabs in der neuen Groesse anzuschauen oder per
Hand wieder andere Groessen einzustellen.



--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #3  
Old   
Sascha Bahl
 
Posts: n/a

Default Re: Fenstergroesse nach dem Inhalt anpassen - 02-02-2005 , 06:34 AM



Martin Honnen wrote:

Quote:

Sascha Bahl wrote:


Ich suche eine Methode, die Fenstergröße so zu manipulieren das mein
Inhalt genau reinpasst.

Du kannst ja mal
if (window.sizeToContent) {
window.sizeToContent();
}
versuchen, diese Methode wird von Mozilla Browsern wie der Mozilla
Suite, wie Netscape 7, wie Firefox unterstuetzt. Allerdings sind diese
Browser auch so konfigurierbar, dass Script die Groesse eines Fensters
gar nicht aendern darf. Und es gibt Minimalgroessen, ich glaube 100x100,
die nicht unterschritten werden koennen.

In Netscape 4 gibt es Eigenschaften
document.width
document.height
die die Groesse des Inhaltes angeben, in Fortsetzung von oben also
else if (typeof document.height != 'undefined') {
window.resizeTo(document.width, document.height);
}

In IE 6 braucht man je nach rendering mode
document.documentElement.scrollHeight
oder
document.body.scrollHeight
in Fortsetzung von oben also
else if (document.compatMode != 'BackCompat') {
window.resizeTo(document.documentElement.scrollWid th,
document.documentElement.scrollHeight);
}
else if (document.body && typeof document.body.scrollHeight !=
'undefined') {
window.resizeTo(document.body.scrollWidth,
document.body.scrollHeight);
}

Auch IE 6 unter Windows XP SP2 zumindest mag aber je nach Konfiguration
Script das Veraendern des Fensters nicht erlauben.
Der obige Zweig fuer IE mag auch Auswirkungen in anderen Browsern wie
Opera 7 haben, da auch dort die Eigenschaften existieren, ob die aber
sonderlich genau sind, was den Inhalt angeht, habe ich nie probiert.

Und generell gilt insbesondere bei Browsern wie Opera oder Mozilla mit
Tabbed-Browsing, dass ein Versuch, ein Fenster an den Inhalt eines
Dokumentes anzupassen, den Benutzer zwingt (so das Script es schafft),
auch Dokumente in anderen Tabs in der neuen Groesse anzuschauen oder per
Hand wieder andere Groessen einzustellen.



Vielen Dank!

Mit folgendem Konstrukt klappt es ganz wunderbar:

if(navigator.userAgent.match("MSIE") )
var docHeight = document.body.scrollHeight;
else
var docHeight = document.height;
// +50 Pixel für den Fensterrahmen mit Statuszeile etc.
window.resizeTo(400,docHeight+50);

Es ist ein zusätzliches Fenster zum Drucken eines Bildes für eine Anwendung.

Gruss

Sascha Bahl



Reply With Quote
  #4  
Old   
Dietmar Meier
 
Posts: n/a

Default Re: Fenstergroesse nach dem Inhalt anpassen - 02-02-2005 , 08:16 AM



Sascha Bahl wrote:

Quote:
Mit folgendem Konstrukt klappt es ganz wunderbar:

if(navigator.userAgent.match("MSIE") )
var docHeight = document.body.scrollHeight;
else
var docHeight = document.height;
// +50 Pixel für den Fensterrahmen mit Statuszeile etc.
window.resizeTo(400,docHeight+50);
Das klappt mitnichten wunderbar. Das Vorkommen von "MSIE"
im userAgent-String ist kein sicheres Indiz für die
Existenz der verwendeten Eigenschaften. Verwende eher:

var docHeight;
if (document.body && "undefined" != typeof document.body.scrollHeight)
docHeight = document.body.scrollHeight;
else if ("undefined != typeof document.height)
docHeight = document.height;
if (docHeight && window.resizeTo)
window.resizeTo(400, docHeight + 50);

ciao, dhgm



Reply With Quote
  #5  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Fenstergroesse nach dem Inhalt anpassen - 02-02-2005 , 02:58 PM



Sascha Bahl wrote:

Quote:
Mit folgendem Konstrukt klappt es ganz wunderbar:

if(navigator.userAgent.match("MSIE") )
var docHeight = document.body.scrollHeight;
[...]
Ergänzend zu Dietmars Antwort:

<http://pointedears.de/scripts/test/whatami>
<http://got.to/quote>


PointedEars
--
Wenn Du ganz genau hinhörst, wirst Du
bemerken, wie mein Interesse *schwin-det*...
-- ALF


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.