Blümchen: Fenster genau in der Mitte ausrichten

Hallo euch allen,

wollte mal wissen ob Ihr mir das sagen könnt, wie ich das machen kann, dass ich ein Fenster genau in der Mitte des Bildschirmes öffnen kann?

bis jetzt mache ich das so:

onclick="win_f=window.open('info_kino.php? id=<?php echo $db_kino['id']; ?>', 'info_kino', 'width=500,height=200,left=0,top=0,scrollbars'); win_f.focus(); return false;"

Hoffe mal, dass mir das jemand sagen kann.

Gruß Blümchen

  1. Hi

    Hoffe mal, dass mir das jemand sagen kann.

    du ermittelst mit Javascript die Breite und Höhe des Bildschirms, teilst diese durch 2 um die Mitte des Bildschirms zu erhalten und sobtrahierst von diesen Werten jeweils die hälfte der Maße des zu öffnenden Fensters.
    Mit diesen Werten öffnest du dann dein Popup.

    so long
    Ole
    (8-)>

    --
    Trotz Equalizer und Compressor, der Sound wird matschig unn nett
    bässer!
    1. Hallo,

      du ermittelst mit Javascript die Breite und Höhe des Bildschirms, teilst diese durch 2 um die Mitte des Bildschirms zu erhalten und sobtrahierst von diesen Werten jeweils die hälfte der Maße des zu öffnenden Fensters.

      Hmm das hört sich logisch an aber wie muss ich das dann machen gibts da wo nee Anleitung oder so? Denn der User hat ja auch nicht immer die gleiche Größe so wie ich die habe oder?

      Gruß Blümchen

      1. hi

        Hmm das hört sich logisch an aber wie muss ich das dann machen gibts da wo nee Anleitung oder so? Denn der User hat ja auch nicht immer die gleiche Größe so wie ich die habe oder?

        Schau dir screen ff. an. Das ist dein Einstieg. Der Rest ist das Anwenden von Grundschulmethematik.

        so long
        Ole
        (8-)>

        --
        Trotz Equalizer und Compressor, der Sound wird matschig unn nett
        bässer!
        1. Hi Ole,
          [...] Der Rest ist das Anwenden von Grundschulmethematik.
          Und Grundschulortogrefie ;-)

          Gruß, Marian

  2. hi,

    wollte mal wissen ob Ihr mir das sagen könnt, wie ich das machen kann, dass ich ein Fenster genau in der Mitte des Bildschirmes öffnen kann?

    u.U. gar nicht.

    (wenn ich z.b. einen browser mit tabbed browsing nutze, und der gar nicht über den gesamten bildschirm aufgezogen ist, kannst du ein darin erscheinendes "popup" schwerlich aus diesem kontext herauslösen.)

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo, ich persönlich mache das so:

    Im head-Bereich
    <script>
    function fenster_oeffnen(url){
    if (navigator.appName == "Netscape") {
    var $_fensterbreite = window.innerWidth;
    var $_fensterhoehe = window.innerHeight;
      }
       if (document.all){
    var $_fensterbreite = document.body.offsetWidth;
    var $_fensterhoehe = document.body.offsetHeight;

    }
    if ((navigator.appName != "Netscape") && (!document.all)){
    var $_fensterbreite = screen.availWidth;
    var $_fensterhoehe = screen.availHeight;
    }

    var $_bildbreite = 500;
    var $_bildhoehe = 200;
    $_left = $_fensterbreite/2 - $_bildbreite/2;
    $_top = $_fensterhoehe/2 - $_bildhoehe/2;
    fenster = window.open(url, "Fenster1","width=" + $_bildbreite + " ,height=" + $_bildhoehe + " ,left=" + $_left + ",top=" + $_top + ",toolbar=yes,location=yes,menubar=yes,scrollbars=yes,status=yes");
    fenster.focus();
    }
    </script>

    Im body:
    <a href="datei.html" target="_blank" onclick="fenster_oeffnen(this.href); return false">Linktext<a>

    Wenn ich aber ein Fenster aus einem kleinen Javascript-Fenster heraus öffnen will, nehme ich auch für denn Netscape ebenfalls immer screen.availWidth/Height, weil die Größe von window ja sonst die des kleinen Fensters wäre und das mit der Zentrierung nicht mehr hinhaut. Ansonsten passt window.innerWidth/Height für Netscape bei mir meist besser als screen.availWidth/Height. Es ist wohl die Frage, wo das Fenster genau hinsoll: tatsächlich in die Bildschirmmitte oder in die Mitte des eigentlichen Browserfensters, die ja etwas tiefer liegt.

    Viele Grüße
    Carrie

    1. Im head-Bereich
      <script>

      da fehlt noch ein type="text/javascript"

      function fenster_oeffnen(url){
      if (navigator.appName == "Netscape") {
      var $_fensterbreite = window.innerWidth;
      var $_fensterhoehe = window.innerHeight;

      appName und window.innerHeight haben nichts miteinander zu tun, es gibt sehr viel mehr Browser die diesen Wert ebenfalls korrekt anzeigen.

      }
         if (document.all){
      var $_fensterbreite = document.body.offsetWidth;
      var $_fensterhoehe = document.body.offsetHeight;

      genau wie hier.

      warum nicht einfach:

      var fensterbreite = window.innerWidth ? window.innerWidth : document.body.offsetWidth ? document.body.offsetWidth : screen.availWidth;

      var fensterhoehe = window.innerHeight ? window.innerHeight : document.body.offsetHeight ? document.body.offsetHeight  : screen.availHeight;

      (Das Dollarzeichen ist in JS nicht nötig)

      Wenn ich aber ein Fenster aus einem kleinen Javascript-Fenster heraus öffnen will, nehme ich auch für denn Netscape ebenfalls immer screen.availWidth/Height, weil die Größe von window ja sonst die des kleinen Fensters wäre und das mit der Zentrierung nicht mehr hinhaut.

      Du gehst davon aus, das alle ihr Fenster maximieren?
      Davon solltest du dich gerade in Zeiten wo 19" Monitore normal sind verabschieden, je größer der Monitor umso wahrscheinlicher ist es dass das Fenster auf eine dem Benutzer ansprechende Größe verkleinert ist. (wie z.b. bei mir auch momentan 952x714)

      Struppi.

  4. Hi Blümchen,

    wollte mal wissen ob Ihr mir das sagen könnt, wie ich das machen kann, dass ich ein Fenster genau in der Mitte des Bildschirmes öffnen kann?

    <a href="info_kino.php? id=<?php echo $db_kino['id'] ?>" target="win_f_<?php echo $db_kino['id'] ?>" onclick="top = (screen.availHeight-200) / 2; left = (screen.availWidth - 500) / 2; win_f_<?php echo $db_kino['id'] ?> = window.open('info_kino.php', 'info_kino', 'width=500,height=200,left=' + left + ',top=' + top + ',scrollbars'); win_f.focus(); return false;">

    ich glaub es stimmt so...
    Das wichtigste ist

      top = (screen.availHeight-200) / 2;  
      left = (screen.availWidth - 500) / 2;
    

    das andere hab ich nur gemacht, damit es ohne js auch geht (dann kommt es nicht im popup, sondern in einem normalen neuen fenster)

    Gruß, Marian