vergessen: JavaScript: window.open(): Fenster 6px breiter/28px höher als in resizeTo() angegeben

Das ist der Code:

var test = window.open("", "", "width=100, height=100");
test.resizeTo(250, 250);
test.focus();

Mache ich ein Bildschirmfoto nur von dem Firefox-Fenster unter Linux, ist es 256px breit/278px hoch statt 250px/250px.

Oder ist der Linux Fenstermanager dafür verantwortlich?

  1. Analyse mit Grafikprogramm: window.resizeTo() berücksichtigt nicht Rahmen & Titelzeile.

    Der Rahmen links & rechts ist 3px breit. Das erklärt die 6px größere Breite.

    Die 250px Höhe beziehen sich nur auf Adresszeile & "Website-Anzeige-Bereich". Die Titelzeile oben ist nochmal 28px hoch. Daher 278px statt 250px.

    1. Tach!

      Analyse mit Grafikprogramm: window steht nicht für das gesamte Fenster.

      Das "window" ist aus der Sicht den Inhalts geschaut. Für den muss die zur Verfügung stehende Fläche verlässlich groß sein, egal wieviel der Browser noch an Rand für sich selbst hinzufügt. Window müsste hier eigentlich Viewport heißen. Der Begriff Viewport wird auch in Fachkreisen verwendet, um eben genau den für den Inhalt nutzbaren Bereich zu bezeichnen.

      Der Rahmen links & rechts ist 3px breit. Das erklärt die 6px größere Breite.

      Die 250px Höhe beziehen sich nur auf Adresszeile & "Website-Anzeige-Bereich". Die Titelzeile oben ist nochmal 28px hoch. Daher 278px statt 250px.

      Ein Bildschirmfoto-Programm betrachtet jedoch das Fenster von außen aus Sicht des Betriebssytems und das ist eben inklusive Rahmen. Das Screenshot-Programm hat nur diese äußeren Maße zur Verfügung. Es weiß nichts davon, wie das Programm seinen Inhalt darstellt, geschweige denn was davon Bedienelemente oder anderes ist.

      dedlfix.

      1. Gut zu wissen! Ich habe nun .resizeTo(250-6, 250-28) aufgerufen um ein 250x250px Firefox Fenster zu erhalten.

        Gibt es einen besseren Weg (unabhängig v. Betriebssystem & Browser)? Oder müsste ich dafür schon von JavaScript zu jQuery schwenken?

        1. Gut zu wissen! Ich habe nun .resizeTo(250-6, 250-28) aufgerufen um ein 250x250px Firefox Fenster zu erhalten. Gibt es einen besseren Weg (unabhängig v. Betriebssystem & Browser)?

          Es gibt keinen Weg.

          Oder müsste ich dafür schon von JavaScript zu jQuery schwenken?

          jQuery ist Javascript; manche Dinge sind in jQuery einfacher zu schreiben, aber es kann keinesfalls mehr als Javascript.

          1. @@peter

            jQuery ist Javascript; manche Dinge sind in jQuery einfacher zu schreiben,

            Das war vor 5 Jahren so. Mit den modernen JavaScript-nativen APIs hat sich das erledigt.

            aber es kann keinesfalls mehr als Javascript.

            Genauso wie Sass nicht mehr kann als CSS.

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        2. Hallo,

          Gut zu wissen! Ich habe nun .resizeTo(250-6, 250-28) aufgerufen um ein 250x250px Firefox Fenster zu erhalten.

          das hat dann in deinem speziellen Fall mit deinem Window-Manager in der vorliegenden Version die gewünschte Außengröße. Mit einem anderen Window-Manager oder gar Betriebssystem sieht es wieder anders aus …

          Gibt es einen besseren Weg (unabhängig v. Betriebssystem & Browser)?

          Nein, es gibt gar keinen Weg, weil die Fensterdekoration nicht Sache des Browsers ist, sondern des verwendeten Window-Managers.

          Oder müsste ich dafür schon von JavaScript zu jQuery schwenken?

          Das hilft dir nicht, denn jQuery ist auch nur JavaScript und kann nicht zaubern.

          Viele Grüße
          Robert

    2. Hallo vergessen,

      Wie machst Du denn die Screenshots? Du hast doch mehr als eine Wahl.

      Gruss
      Henry

      1. Hallo Henry,

        glaubst Du, das Screenshot-Programm ist das Problem?

        Rolf

        --
        sumpsi - posui - clusi
        1. Hallo Rolf,

          glaubst Du, das Screenshot-Programm ist das Problem?

          wäre zwar auch denkbar, glaube ich hier aber eher nicht. Nein es stellt sich die Frage wo die Prioritäten liegen, beim Ergebnis oder bei der Fensterbehandlung. Wenn die Frage nur deshalb entsteht, weil das Ergebnis nicht wie gewünscht passiert, überlegt man doch Alternativen. Daher mein Hinweis darauf, dass alle Screenshotprogramme, sowieso schon mehrere Auswahlmöglichkeiten des Fensters haben, viele dann noch sehr fein justierbar und einige sogar konfigurierbare automatische Nachbearbeitung ermöglichen. Wenn das gewünschte Ergebnis also durch diese Überlegungen zustande kommt, stellt sich die Frage nach den Fenstern nicht mehr.

          Gruss
          Henry