Window.open (content höhe ermitteln?)

Hallo,

ich lade mit „window.open“ eine externe Seite ein. Der Inhalt ist dort mal 300 Pixel, mal 400 Pixel und mal 500 Pixel hoch. Selbst kann ich diesen externen HTML-Inhalt nicht verändern.

Bei „window.open“ gebe ich erst einmal 300 Pixel für die Höhe an, möchte jedoch danach mit meinem Javascript (also nach „window.open“) den Inhalt überprüfen, um zu wissen ob ich das Fenster noch vergrößern muss.

Ein „height=auto“ bei „windows.open“ geht natürlich nicht. Schön wärs gewesen. Weis jemand wie ich mein Problem lösen kann?

  1. Bei den meisten Browsern sind solche Popups unerwünscht und erfordern die Zustimmung des Anwenders. Selbst nach der Zustimmung muss der Vorgang wiederholt werden.
  2. Die Seite wird sich in der Regel in einem neuen Tab öffnen, nicht in einem neuen Fenster. Es gibt auch keine Möglichkeit dies zu bestimmen, dies ist Sache der Einstellungen des Browsers.
  3. Die Höhe der Seite kann man erst abfragen, wenn sie vollständig geladen wurde. Macht man das gleich nach window.open kriegt man immer 0. Du hast aber keine Chance zu erfahren, wann dies soweit ist, du kannst dies nur schätzen und setTimeout verwenden. Ist die Verbindung des Anwenders besonders langsam kann dies trotzdem schiefgehen.
  4. Man sollte auch sicherstellen, dass das Fenster nicht grösser wird, wie der Monitor überhaupt Platz hat. Du müsstest also auch die Auflösung des Bildschirms berücksichtigen.
  5. Wie man an die Höhe eines Dokuments kommt ist nicht standardisiert. Es gibt 5 verschiedene Werte, von denen man einfach den größten nimmt (Math.max). window.open liefert ja das Fenster zurück. Über dessen document-Objekt kommst du an body (sccrollHeight, offsetHeight) und an documentElement (clientHeight, scrollHeight und offsetHeight). Einfach mal „JavaScript document height“ googlen.
  6. Überleg dir besser eine andere Lösung :wink:

Hi,

  1. Die Höhe der Seite kann man erst abfragen, wenn sie
    vollständig geladen wurde. Macht man das gleich nach
    window.open kriegt man immer 0. Du hast aber keine Chance zu
    erfahren, wann dies soweit ist

letzteres ist so pauschal falsch - es gibt schließlich den Eventhandler onload. Aber die same origin policy verbietet ohnehin sämtliche Abfragen externer Seiten und daher stimmt Dein Resüme.

Gruß
Ingo