Zum Inhalt springen

Variablen in Javascript Link


Slayer8

Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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....

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...