Alex: Fenstergröße

Guten Morgen,

ich öffne im html mit der javascript Funktion window.open ein Fenster. Hierbei soll das Fenster in voller Größe erscheinen. Es soll nicht resizable sein. Wenn ich die Attribute fullscreen auf yes und resizebale auf no stelle, so verdeckt das fenster die taskleiste. Da dieser Effekt nicht erwünscht ist, habe ich mir gedacht das fullscreen wieder auf nozu stellen und mit width und height zu arbeiten:

hier mein Quelltext:

window.open(URL, '', 'scrollbars=no, hotkeys=no, location=no, fullscreen="no", menubar=yes, resizable=no, status=yes, toolbar=yes, width=screen.width, height=screen.height');

leider werden dabei nicht die Bildschirmmaße bei den Attributen width und height angenommen.

Was muss ich ändern?

P.S. Leider kann ich das resizable nicht auf yes stellen, da in dem fenster ein delphi-objekt geladen wird, welches Fehler aufweisen würde beim resizen.

Gruß Alex

  1. Hi,

    ich öffne im html mit der javascript Funktion window.open ein Fenster. Hierbei soll das Fenster in voller Größe erscheinen.

    warum? Hältst Du es für sinnvoll, wenn der Fensterinhalt in der Mitte durch die Grenze zwischen den beiden Bildschirmen unterbrochen ist?

    Es soll nicht resizable sein.

    Tja, da hast Du Pech. Ob ein Fenster in der Größe verändert werden kann, entscheidet nämlich immer nur einer: der User.

    Wenn ich die Attribute fullscreen auf yes und resizebale auf no stelle, so verdeckt das fenster die taskleiste.

    Nicht bei mir.

    window.open(URL, '', 'scrollbars=no, hotkeys=no, location=no, fullscreen="no", menubar=yes, resizable=no, status=yes, toolbar=yes, width=screen.width, height=screen.height');

    '"no"' ist kein gültiger Wert für 'fullscreen', 'screen.width' und 'screen.height' sind ebenfalls nicht gültig. Es wird ein nummerischer Wert erwartet, keine Zeichenkette.

    Was muss ich ändern?

    Dein Wissen über String-Verarbeitung. Außerdem solltest Du Dein Gesamtkonzept noch mal überarbeiten - und zwar gründlich.

    P.S. Leider kann ich das resizable nicht auf yes stellen, da in dem fenster ein delphi-objekt geladen wird, welches Fehler aufweisen würde beim resizen.

    Dann repariere das Delphi-Objekt, anstatt irgendwelche Symptome zu kaschieren zu versuchen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    window.open(URL, '', 'scrollbars=no, hotkeys=no, location=no, fullscreen="no", menubar=yes, resizable=no, status=yes, toolbar=yes, width=screen.width, height=screen.height');
    leider werden dabei nicht die Bildschirmmaße bei den Attributen width und height angenommen.

    Was muss ich ändern?

    Du notierst einen String:
    "bla screen.height bla"

    Jetzt willst du, dass an die Stelle von »screen.height« der Wert des JavaScript-Objektes screen.height gesetzt wird.

    Wie kommst du auf die Idee, dass JavaScript das automatisch tut? ;)
    Wenn du einfach ein String notierst, geht JavaScript den doch nicht durch und schaut, ob die Worte darin JavaScript-Objekten entsprechen...

    Wenn du den Wert einer Variable / Eigenschaft in einem String einfügen willst, dann notierst du
      "davor" + variable + "dahinter"

    Wenn variable den Zahlenwert 1234 hat, kommt z.B. "davor1234dahinter" dabei heraus.

    Soviel zur Syntax.

    Das wird dein Problem aber nicht lösen. Du kannst mit window.open() kein Fenster öffnen, dass zuverlässig den vollen zur Verfügung stehenden Raum einnimmt (ein »maximiertes« Fenster). screen.height und screen.width sind dazu ohnehin völlig ungeeignet, weil sie eben die ganze Bildschirmfläche (und gerne auch die Summe mehrere Bildschirme, sofern diese angeschlossen sind) liefern. Das hat mit den Bereich, den dein Browserfenster einnehmen könnte, überhaupt nichts zu tun. (Im Übrigen ist ein solches Denken in Zeiten von »Tabbed Browsing« unmöglich.)

    Als Alternative existiert screen.availHeight und availWidth, die im Grunde die xzur Verfügung stehende« Größe liefern sollen. Aber auch die arbeiten von Browser zu Browser und von Betriebssystem zu Betriebssystem anders und verhindern nicht immer, dass Tastleisten usw. verdeckt werden.

    Das sinnvollste, was du tun kannst, ist immer noch: Kein neues Fenster öffnen, sondern versuchen, mit dem existierenden Fenster und dem dort zu Verfügung stehenden Raum zu arbeiten. Das ist zuverlässiger, als zu versuchen, Fenster einer bestimmten Größe zu öffnen.

    Leider kann ich das resizable nicht auf yes stellen

    resizable ignorieren neuere Browser ohnehin, so kannst du nicht arbeiten.

    Mathias