Slayer8 Geschrieben 7. April 2002 Geschrieben 7. April 2002 Ahoi Z'sammen! Nicht lachen, aber ich komme einfach nicht drauf.... Und zwar habe ich folgendes, wie übergebe ich mit Javascript eine Variable an eine andere Seite? Ich will mit Javascript ein neues Fenster öffnen lassen und muß dann für jedes Bild die Größe mit an die Funktion übergeben, nur wie ?!? Hier ist ein Teil der HTML-Seite: <html> <head> <title>Slayer8</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="layout.css"> </head> <body background="grafik/back.gif"> <script language="JavaScript" src="fotos.js" type="text/javascript"></script> <!-- SNIP --> <a href=javascript:open_window('foto1.jpg')><img src="foto1_thumb.jpg" width="120" height="81" border="0"></a> Und dann wird diese Funktion aufgerufen: function open_window(url){mywin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,width=400,height=400');} Nur wie bitteschön übergebe ich im Link die Heigth und width werte? Wo muß ich die Variablen dafür definieren? *grübel* ThX! Zitieren
EvilInside Geschrieben 8. April 2002 Geschrieben 8. April 2002 Wenn es nur darum geht, Parameter an die Seite zu übergeben, die Du aufmachst, dann kannst Du die einfach an deinen URL-Parameter dranhängen. Also z.B.: <a href=javascript:open_window('foto1.jpg?height=400&width=200')><img src="foto1_thumb.jpg" width="120" height="81" border="0"></a> Ich weiß aber nicht genau, ob es das ist, was Du willst... Ich wüßte auch nicht, wozu das in diesem Fall sinnvoll wäre, da Du ja direkt die Grafik als URL angibst und dann die Parameter serverseitig nicht weiterverarbeiten könntest. so long, EvilInside Zitieren
Slayer8 Geschrieben 8. April 2002 Autor Geschrieben 8. April 2002 Im Prinzip will ich die Parameter an die Funktion übergeben, die mir dann ein neues Fenster in entsprechender Größe erstellt. Beispiel, Link a soll Bild a laden und Bild a ist 400x300 Pixel. Dann soll mit dem Link die 400x300 Pixel an die Funktion übergeben werden, die mir dann ein Fenster in der Größe erstellen! Sinn und Zweck.... Es soll quasi für jedes Bild ein Fenster in der Größe geöffnet werden. Bei meinem jetzigem Script haben alle Fenster die gleiche Größe, egal wie groß das Foto ist. Genau das will ich ändern.... Zitieren
MiH Geschrieben 8. April 2002 Geschrieben 8. April 2002 das problem von js ist, das für die größe des bildes erstmal das bild geladen sein muss. document.images[0].width würde dir dann die breite liefern. mit php kann aber recht simpel die größe des files auslesen und dann weitergeben. Zitieren
Slayer8 Geschrieben 8. April 2002 Autor Geschrieben 8. April 2002 PHP klappt nicht bei dem Projekt, nur HTML und JS! Die Größe kann ich ja ruhig selber angeben, soll quasi beim Funktionsaufruf mit übergeben werden. Mehr nicht! Zitieren
etreu Geschrieben 8. April 2002 Geschrieben 8. April 2002 Auszug von SelfHTML: <html><head><title>Test</title> <script type="text/javascript"> <!-- F1 = window.open("datei.htm","Fenster1","width=310,height=400,left=0,top=0"); F2 = window.open("datei.htm","Fenster2","width=310,height=400,left=320,top=0"); self.focus(); self.close(); //--> </script> </head><body> </body></html> Auf den ersten Blick eine Frage der Nutzung der Anführungsstriche. Alternativ kannst du erst einmal ein Fenster öffnen und dann nach bzw. beim Laden des Bildes mit resizeTo() die Größe ändern. Zitieren
Slayer8 Geschrieben 8. April 2002 Autor Geschrieben 8. April 2002 @ E-T Danke, ist schon klar. Ist nicht das was sich meinte! Die Funktion zum Öffnen der Bilder besteht schon und soll zwei Variablen für die Größe des Bildes enhalten quasi x und y. Im Funktionsaufrug, dem Link sollen diese Parameter übergeben werden so daß ich jedes Bild individuell mit der Größe in dem Link, bzw. der beim Aufruf der o.g. Funktion übergeben wird. Das was Du mir geschrieben hast bezieht sich doch nur auf die Funktion, oder? Ich brauche jedoch einen Hinweis, WIE man die Paramter übergibt! In SelfHTML habe ich auch shcon geguckt und konnte nichts finden. Das mit dem Resize To funzt doch auch nicht, es soll ja nur ein Bild geöffnet werden, also muß der Parameter für die Grafik im Aufruf übergeben! Trotzdem danke für die Mühe! Slayer8 Zitieren
MiH Geschrieben 9. April 2002 Geschrieben 9. April 2002 naja dann schreib dir doch so eine funktion: function showimage(pURL,pWidth,pHeight){ win = window.open('about:blank','bild','width=' + pWidth + ',height=' + pHeight); win.document.write('<html><head><title></title></head>'); win.document.write('<body background=\"' + pURL + '\"></body></html>'); } die funktion würdest du dann so aufrufen: <a href="javascript:showimage('DEINBILD.JPG',400,400)">show me</a> Zitieren
EvilInside Geschrieben 12. April 2002 Geschrieben 12. April 2002 Etwas komplizierter, aber auch komfortabler wäre eine Lösung. die die Breite des Bildes selbst per JS ermittelt. In etwa sähe das so aus: var preloadImage = null; var preloadTimer = null; function showPicture( pictureUrl ) { if ( preloadImage == null ) { preloadImage = new Image(); preloadImage.src = pictureUrl; preloadTimer = setTimeout( "showPicture('" + pictureUrl + "')", 100 ); } else { if ( preloadImage.complete ) { var w = preloadImage.width; var h = preloadImage.height; window.open( pictureUrl, "Viewer", "width=" + w + ",height=h" ); preloadImage = null; preloadTimer = null; } else { preloadTimer = setTimeout( "showPicture('" + pictureUrl + "')", 100 ); } } } Diese Funktion bekommt nur noch die URL des Bildes übergeben. Dann wird das Bild vorgeladen und wenn es fertig geladen ist, ein Popup mit den korrekten Abmessungen geöffnet. Ich habe die Funktion eben rasch reingehackt, also keine Gewähr - aber im Prinzip sollte es so gehen. Die Sache hat natürlich auch Nachteile bzw. man kann noch einige Dinge verbessern: Gebrauch von globalen Variablen (preloadImage, preloadTimer) und: man sieht das Popup erst, wenn das BIld komplett geladen ist. Wenn das Bild sehr groß ist, bzw. die Ladezeit recht lang, wirkt das ggf. verwirrend auf den User (er klickt und es passiert erstmal nix). HTH, EvilInside Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.