Just nu i M3-nätverket
Gå till innehåll

Samma funktion för olika bilder


rumbleinthejungles

Rekommendera Poster

rumbleinthejungles

Tack för att ni orkar med mig.... Namnsättningen följer alltid samma mönster. Det finns alltid en

 

stor_xxx.jpg

liten_xxx.jpg

 

Det jag vill att skriptet skall hämta är namnet på den stora bilden. Annars kan den inte öppna den. Frågan är vad jag skriver till höger om:

 

bilder/" + "stor_" +

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

jag brukar själv ha samma namn på stora och små (thumbnails) bilder men separera dem i olika mappar.

 

 

Länk till kommentar
Dela på andra webbplatser

rumbleinthejungles

Det är en bra idé. Men hur når man en bild. Jag har testat olika varianter på document.images utan framgång.

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Här får du en funktion som konverterar det "lilla" filnamnet till det stora

 

function GetBigPicName(path)
{
var re = new RegExp("(.*\/)liten_(.*).jpg", "g")
var bigName=path.replace(re,"$1stor_$2.jpg");
return(bigName);
}

 

Anropar du alltså denna funktion med

GetBigPicName("images/liten_adam.jpg")

så returnerar den images/stor_adam.jpg

 

HTML-koden skulle då se ut så här:

<img src="bilder/liten_liv.jpg" name="liten_liv" alt="lt" onclick="stor_bild(this.src);" />

och din funktion skulle du skriva om till:

function stor_bild(src)
{
 window.location= GetBigPicName(src);
}

 

PS. Du behöver inte ange "javascript:" i onclick-attributet

[inlägget ändrat 2009-04-30 11:35:59 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

rumbleinthejungles

Skall jag modifiera den på något sätt? I detta skicka skriver den ut bildens alt-attribut.

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
I detta skicka skriver den ut bildens alt-attribut.

Nej, det konverterar filnamnet. Du skrev ju själv att filnamnen var uppbyggda på detta sätt. Alt-attributet har jag inte tagit hänsyn till alls.

 

Länk till kommentar
Dela på andra webbplatser

rumbleinthejungles

Det fungerar.... Nu skall jag grubbla lite över det du har skrivit.

 

En annan fråga, min ursprungliga. Du konverterar liten till stor och de t är ju listigt, men kan man på något annat sätt komma åt namnet på filen?

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
men kan man på något annat sätt komma åt namnet på filen?

Inte som jag kommer på just nu. Du kan ju inte "se" innehållet i mapparna på servern (såvida du inte dessutom använder en callback till servern, ex. med Ajax)

Hursomhelst föreslår jag hellre att du följer Jonas_Bo:s tips. Det ger mer struktur till det hela och allt du behöver ändra är mappnamnet.

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
PS. Jag hittade detta obegripliga förslag

Det är bara en variant av en lösning som lämpligast ändå löses med regular expressions (vilket mitt förslag gjorde).

Rent programmeringsmässigt finns det oftast många sätt att göra samma sak på.

 

Länk till kommentar
Dela på andra webbplatser

rumbleinthejungles

Du är inte lite finurlig, du. En sak. När man skriver:

 

window.location= GetBigPicName(src);

 

förväntar jag mig en adress av typen http://xxx.xx.xxx/

 

Därför undrar jag om kan förklara dig lite närmare.

 

Länk till kommentar
Dela på andra webbplatser

rumbleinthejungles

Efter idogt tänkande och under er inspiration fick jag det att fungera på följande sätt:

 

<script language="JavaScript" type="text/JavaScript">

function stor_bild(src){

 

var kalla= src;

var ersatt = kalla.replace(/liten/,"stor");

window.open(ersatt,"","height=400,width=400");

 

}

</script>

 

 

 

<img src="bilder/liten_liv.jpg" name="liten_liv" alt="lt" onclick="stor_bild(this.src);" />

<img src="bilder/liten_as.jpg" name="liten_as" alt="as" onclick="stor_bild(this.src);" />

 

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

 

Trägen vinner, heter det.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...