• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wie einer aspx-Seite die Browserfenstergröße vor Render mitteilen?

Status
Für weitere Antworten geschlossen.

heureka

Neues Mitglied
Wie kann ich einer aspx-Seite die Browserfenstergröße vor dem serverseiten PageLoad bzw. PreRender mitteilen, damit ich meine Servercontrols gleich in der passenden Größe rendern kann?

Was ich bisher ausprobiert habe:

1) Über Cookies. Im Header der aufgerufenen aspx-Seite habe ich ein Javascript, das die Fenstergröße ausliest und die Werte dann als Cookie setzt die ich dann in PageLoad serverseitig auslese. Allerdings funktioniert das nicht und wenns geht möchte ich Cookies vermeiden.

2) Im Header der aufgerufenen aspx-Seite habe ich ein Javascript, das die Fenstergröße ausliest und dann

Code:
window.location += "?width=" + width + "&height=" + height;]

ausführt. Serverseitig lese ich die beiden Varialen aus dem Querystring aus. Das funktioniert zwar, doch es sind 2 Aufrufe der Webseite nötig und die Url wird verändert - Also nicht optimal!

3) Eine Dummyseite mit einem Formular das die beiden Werte per POST an die eigentliche aspx-Seite überträgt. Das funktioniert zwar auch, ist aber ziemlich langsam - Also nicht wirklich akzeptabel!

4) Drittanbieter-Controls wie dockable Panels darf ich nicht verwenden.

5) Eine Idee: Die Servercontrols werden ja großteils zu div's umgewandelt und gerendert deren width und height per css-style eingestellt wird. Jetzt wäre es toll, wenn statt

Code:
style="width:1200px;height:780px"

etwas wie

Code:
style="width:'javascript:fensterbreite';height:'javascript:fensterhoehe'"

rendern könnte, wobei die beiden Variablen "fensterbreite" und "fensterhoehe" wieder im script-Tag des Header erzeugt werden. Natürlich funktioniert das so nicht, aber gäbe es eine Möglichkeit bei Inline-CSS Javascriptvariablen einzuschleusen?
 
Wenn du Javascript einsetzen willst, bietet sich ein Aufruf über ein Image Objekt an.

Code:
var img = new Image();
img.src = '...'
 
Ja, deine letzte Idee hatte ich überlesen:

HTML:
style="width:100%;height:100%"
 
Also das mit dem Image klappt nicht so ganz, weil ich auf der Serverseite nicht den Request an dieses spezifische Image abfangen kann.
 
Hmm, leider verzögert der doppelte Aufruf der Webseite den Bildaufbau merklich :-(

Kann man die Windowsize vielleicht im Header übertragen damit man sie im PageLoad-Event am Server zur Verfügung hat?
 
Zweimal das komplette Startskript aufzurufen ist natürlich Unsinn.
Aber wieso brauchst du die Fenstergröße?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben