Andreas Riedl: popup maximiert die 2798te (und doch nicht geklappt)

Hallo Forum...

Jetzt hab' ich den ganzen Tag damit verbracht, hier die Threads on- und offline zu durchforsten, bin aber trotzdem nicht weitergekommen.

Problemstellung (altbekannt):
   - "Browser, öffne mir doch bitte auf einen Klick hin ein neues Fenster, welches auf X/Y=0/0 steht, die maximale Bildschirmauflösung nutzt und URL "dingsbums.html" beinhaltet.

Lösung:
   - bestimmt vielen bekannt, aber nicht mir!

Mein JS-Code im Head ist bisher folgender:

----//snip//----

<script type="text/javascript" language="JavaScript">
<!--

function newmax()

{
newmax=window.open('url','name','einstellungen');
newmax.resizeTo(screen.availWidth, screen.availHeight);
newmax.moveTo(0,0);
}

//-->
</script>

----//snip//----

Der Aufruf folgt dann weiter unten im Body:

----//snip//----

<a href="javascript:newmax('dingsbums.html','dingsed','directories=1,location=1,menubar=1,scrollbars=0,status=1,toolbar=1')"> <img src="../grafx/dingsed.gif" width=200 height=60 border=0 alt="zu Seite Dingsbums">
  </a>

---//snip//----

Warum zum Geier findet der Mistkerl die URL nicht, wenn die Seite, in der o.a. Code steht und die Seite, die in das neue Window geladen werden soll in ein und demselben Verzeichnis stehen?

Btw: morgen um 13.30h soll ich die Lösung präsentieren... *heul*

Ich hoffe, dass da draussen irgendein Crack sitzt, der nur über mich schmunzeln kann und sich herablässt, mir zu helfen. ;)

so long

Andreas

  1. Hi!

    Ich hoffe, dass da draussen irgendein Crack sitzt, der nur über mich schmunzeln kann

    Das nicht...

    »»und sich herablaesst, mir zu helfen. ;)

    ...aber das :-)

    Fuer die Funktion newmax werden keine Argumente definiert. Richtig muss der Funktionskopf also heissen:
    function newmax(url,name,einstellungen)
    ...

    Der Inhalt der Funktion muss folgendermassen abgeaendert werden:

    neufenster=window.open(url,name,einstellungen);
    neufenster.resizeTo(screen.availWidth, screen.availHeight);
    neufenster.moveTo(0,0);

    Ich habe den Variablennamen abgeaendert, damit es nicht zu Kollisionen mit dem Funktionsnamen kommt.

    MfG Simon

    1. Fuer die Funktion newmax werden keine Argumente definiert. Richtig muss der Funktionskopf also heissen:
      function newmax(url,name,einstellungen)
      ...

      Der Inhalt der Funktion muss folgendermassen abgeaendert werden:

      neufenster=window.open(url,name,einstellungen);
      neufenster.resizeTo(screen.availWidth, screen.availHeight);
      neufenster.moveTo(0,0);

      Ich habe den Variablennamen abgeaendert, damit es nicht zu Kollisionen mit dem Funktionsnamen kommt.

      MfG Simon

      Simon, Du bist ein Genie!!!

      wenn Du mir jetzt auch noch erklären kannst, wie selbiges mit Netscape funzt, dann knie ich mich nieder und küsse Deine VIRTUELLEN Füsse! ;)))

      mfG

      Andreas

      1. Hi!

        Simon, Du bist ein Genie!!!

        Da sagst Du mir nichts neues.

        wenn Du mir jetzt auch noch erklären kannst, wie selbiges mit Netscape funzt, dann knie ich mich nieder und küsse Deine VIRTUELLEN Füsse! ;)))

        Bitte nicht! Ausserdem weiss ich gar nicht, was Du hast: bei mir funzt es mit beiden Browsern (ns 4.7).
        Was kriegst Du denn fuer eine Fehlermeldung?

        MfG Simon

        1. Bitte nicht! Ausserdem weiss ich gar nicht, was Du hast: bei mir funzt es mit beiden Browsern (ns 4.7).
          Was kriegst Du denn fuer eine Fehlermeldung?

          MfG Simon

          Hi

          NS macht alles richtig (neues Window, linke, obere Ecke, URL öffnen), ausser, dass er mir das Fenster nicht über den gesamten Screen zieht.

          Frag mich mal, warum...

          mfG

          Andreas

  2. Hallo Forum...

    Jetzt hab' ich den ganzen Tag damit verbracht, hier die Threads on- und offline zu durchforsten, bin aber trotzdem nicht weitergekommen.

    Problemstellung (altbekannt):
       - "Browser, öffne mir doch bitte auf einen Klick hin ein neues Fenster, welches auf X/Y=0/0 steht, die maximale Bildschirmauflösung nutzt und URL "dingsbums.html" beinhaltet.

    Lösung:
       - bestimmt vielen bekannt, aber nicht mir!

    Mein JS-Code im Head ist bisher folgender:

    ----//snip//----

    <script type="text/javascript" language="JavaScript">
    <!--

    function newmax()

    {

    »»  newmax=window.open('url','name','einstellungen');
    »»  newmax.resizeTo(screen.availWidth, screen.availHeight);
    »»  newmax.moveTo(0,0);

    }

    //-->
    </script>

    ----//snip//----

    Der Aufruf folgt dann weiter unten im Body:

    ----//snip//----

    <a href="javascript:newmax('dingsbums.html','dingsed','directories=1,location=1,menubar=1,scrollbars=0,status=1,toolbar=1')"> <img src="../grafx/dingsed.gif" width=200 height=60 border=0 alt="zu Seite Dingsbums">
      </a>

    ---//snip//----

    Warum zum Geier findet der Mistkerl die URL nicht, wenn die Seite, in der o.a. Code steht und die Seite, die in das neue Window geladen werden soll in ein und demselben Verzeichnis stehen?

    Btw: morgen um 13.30h soll ich die Lösung präsentieren... *heul*

    Ich hoffe, dass da draussen irgendein Crack sitzt, der nur über mich schmunzeln kann und sich herablässt, mir zu helfen. ;)

    so long

    Andreas

    Hi Andreas,

    ich würde einfach mal sagen, das folgende Zeile in deinem Script dein Problem ist
    »»  newmax=window.open('url','name','einstellungen');
    die sollte so heissen

    function newmax(url,name,einstellungen)

    {

    »»  newmax=window.open(url,name,einstellungen);
    »»  newmax.resizeTo(screen.availWidth, screen.availHeight);
    »»  newmax.moveTo(0,0);

    }

    du musst die parameter mit an die funktion übergeben und dann ohne
    Anführungszeichen referenzieren (d.h. in window.open benutzen)
    anbei eine etwas, vielleicht komplexere funktion, die (für Dich vielleicht unnützer Weise)
    einen extra parameter nehmen KANN (der letzte: "position:middle")
    damit kann man das fenster mittig positionieren

    vielleicht ein anderes feature der funktion das Du gebrauchen könntest
    ist, dass es das fenster erst nach ca. 100 ms öffnet und dem dann den focus gibt,
    (nach ca. 100 ms hat der user die maustaste schon das zweite mal geklickt) da ich mal das problem hatte
    das wenn der user auf den link, der das fenster öffnet, DOPPEL-klickt und das fenster sich nicht
    direkt unter der maus öffnet bekommt das vorherige fenster wieder den focus und das neu geöffnete
    fenster verschwindet dahinter...

    aber vielleicht schiesse ich hier ja mit kanonen auf spatzen,
    ich hoffe trotzdem geholfen zu haben....

    cain

    ------------------------------------------------------------------------------------
    PS: die funktion "parseParameters" ist nur eine kleine hilfsfunktion

    ein möglicher aufruf:
    onclick ='openNewWindow("../info/info.htm","InfoFenster","width=400,height=400","position:middle")'

    ------------------------------------------------------------------------------------

    /////////////////////////////////////////////////////
    //
    //      opens a new window using JS-function open
    //
    function openNewWindow(src,name,paras,addParas)
    {            
      aParameters = new Array();
      aParameters = parseParameters(paras,new Array(",","="));
      if(addParas) // any additional parameters?
      {
        // add additional parameters to paras
        if(addParas.match(/position:middle/))
        {
          paras = paras.concat( ",left="+parseInt(screen.width/2-aParameters['width']/2)+","+
          "top="+parseInt(screen.height/2-aParameters['height']/2));
        }
      }
      /////////////////////////////////
      //
      //  finally open the window                
      //
      __newWins[__winNum] = open(src,name,paras);
      setTimeout("__newWins["+(__winNum++)+"].focus()",100);
    }
    __newWins = new Array();
    __winNum = 0;

    /////////////////////////////////////////////////////
    //                                
    //  parses a parameter list like: "width:100px; left:300px;"      
    //  and returns an array: aParameters["width"] = 100
    //                        aParameters["left"] = 300
    //
    //  parameters: aSplitChar  - is an array, which contains the characters that devide the different
    //                            parameters and their values
    //                            using the example above, it would be
    //                            aSplitChar[0] = ";"
    //                            aSplitChar[1] = ":"
    //
    function parseParameters(paras,aSplitChar)
    {    
      var a;
                        
      aParameters = new Array();
      aParas = paras.split(aSplitChar[0]);
      for( a=0 ; a<aParas.length ; a++ )
      {            
        aSplit = aParas[a].split(aSplitChar[1]);
        aParameters[aSplit[0]] = parseInt(aSplit[1]);
      }
      return aParameters;
    }

    ------------------------------------------------------------------------------------