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

Beitrag lesen

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;
}

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