Ransom: Link auf neues Fenster, Variablen im Link mit übergeben

Hallo,

jetzt wirds kompliziert. Nachdem ich jetzt ca. anderthalb Stunden ausprobiert habe, wende ich mich verzweifelt euch:

Ich möchte einen Link einbauen, der ein neues Fenster öffnet. Im Link soll die Adresse der anzuzeigenden Seite des neuen Fensters sein, sowie die Größe des neuen Fensters. Klingt einfach.

Die Seite, die im neuen Fenster aufgerufen wird, ist immer gleich, allerdings wird im Link eine zweite Adresse mit übergeben, die ein Bild auf der Seite im neuen Fenster anzeigt (das soll jeweils anders sein) Sinn: eine Seite, die verschiedene Bilder als Großansicht anzeigen kann. Warum überhaupt noch eine Seite, nicht einfach die Bild-URL? Damit man mit Klick auf das Bild das Fenster wieder schließen kann, kein Rand da ist etc.

Ich krieg es soweit, dass der Explorer ein neues Fenster öffnet, in dem er auch die richtige Seite lädt; da aber die ganzen Variablen für Größe des Fensters etc. mit in der Adressleiste stehen (und nicht berücksichtigt werden), wird auch nicht das richtige Bild angezeigt.

Die Quelltexte:

<a href="javascript:foto('bilderscript.html?pics/angebote/0058_l.jpg','640','480');">

Der Link. Verweist auf ausgelagertes JavaScript (s.u.), öffnet die Seite "bilderscript.html" die ein Javascript eingebaut hat, was alles nach dem Fragezeichen als URL für das Bild verwendet. Die beiden Zahlen sollen die Fenstergröße sein (640x480 Pixel). Die URL des Bildes ist richtig.


<script language="javascript" type="text/javascript" src="other/foto.js">
<!--

//-->
</script>

Die Einbindung des ausgelagerten JavaScripts, die sich in der selben Seite wie der Link befindet.

function foto(url,w,h) {
 if (window.screen) {
 var hori = screen.availWidth;
 var verti = screen.availHeight;
  dorthin = window.open( url + ',fotofenster,width=' + w + ',height=' + h + ',left=' + ((hori - w - 10) * .5) + ',top=' + ((verti - h - 30) * .5));
}
}

Das ausgelagerte JavaScipt (foto.js), was das Script für das neue Fenster beinhaltet. Die Rechnung ist dazu da, um das neue Fenster auf dem Bildschirm zu zentrieren (Rechnung ist richtig...). Das Problem scheint mir hier zu liegen, nämlich die Variable "url" richtig zu benutzen oder zu platzieren.


<script language="javascript">
<!--

var query="";
href=window.location.href;

var indx=href.indexOf("?");
if (indx>0)    query=href.substr(indx+1,href.length);
query=unescape(query);
//alert(query)
document.write('<html>');
document.write('<head>');
document.write('<style type="text/css"><!--body {margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;}//--></style>');
document.write('<title>Seitentitel...</title>');
document.write('</head>');
document.write('<body scroll="no">');
document.write('<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%" align="center"><tr><td valign="center"><center>');
document.write('<a href="javascript:window.close();" title="Klicken Sie, um das Fenster zu schließen"><img src="'+query+'" border="0"></a>');
document.write('</td></tr></table>');
document.write('</body>');
document.write('</html>');

-->
</script>

Das Script der Seite bilderscript.html (müsste richtig sein, da sie auch mit anderen Aufrufen funktioniert).

Noch mal was ich möchte: Ich habe eine Seite, auf der mehrere Bilder in kleiner Ansicht sind. Per Klick auf jedes dieser Bilder soll in einem neuen Fenster mit der Größe, die ich im Link mit angebe, die Seite bilderscript.html geöffnet werden; allerdings mit einem anschließenden Fragezeichen und der Bild-URL, damit die Seite das richtige Bild in der großen Version anzeigt. Der Link müsste dann doch eigentlich so aussehen wie oben, oder liegt der Fehler darin?

Ich dachte, dass der Fehler ist, dass die URL, die im Fenster geöffnet werden soll nicht in Anführungszeichen steht, aber stellt man die einfach in Anführungszeichen, funktioniert das ganze auch nicht.

Ich hoffe, ihr habt Ideen, vielen Dank für eure Mühe,

Ransom

  1. Hallo Ransom,

    kannst Du Dir schenken, wenn Du folgenden Code in die Bildanzeige-Seite einbaust:

    <script language="javascript">

    function start_it(){
      window.moveTo(20,20);
      groesse_anpassen();
    }

    function groesse_anpassen (){
     if (document.images("bild").complete){

    if (document.images("bild").height > screen.height - 150){hoehe = (screen.height - 100)}
     else {hoehe = (document.images("bild").height + 120)}

    if (document.images("bild").width > screen.width -40){breite = (screen.width - 50)}
     else {breite = (document.images("bild").width + 50 )}

    window.resizeTo(breite,hoehe);

    }
     else
     {
      window.setTimeout("groesse_anpassen",500);
     }
    }

    function schliessMich(){
     window.close();
    }
    </script>

    -----------------------------------------
    Dem sendenden Script gibst Du den URL mit. Auf der "Anzeigeseite" gibts ein <img name="bild" src="dieADresse" border="" />Wenn Du jetzt dem Bild noch ein onClick="schliessMich()" verpasst gehts auch beim klicken wieder zu.