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

Samma funktion för olika bilder

Rekommendera Poster

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_" +

 

 

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
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.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
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.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
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å.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...