Avatar billede jnrmgs Juniormester
26. oktober 2004 - 17:25 Der er 16 kommentarer og
2 løsninger

Bladre gennem billeder

Hej!

Jeg søger en funktion der kan bladre gennem billeder på en hjemmeside. Det er ikke billeder på min egen harddisk, men derimod nogen der ligger eksternt.

Hvis jeg f.eks. har http://test.dk/MVC18236.jpg, vil jeg gerne kunne bladre videre til http://test.dk/MVC18237.jpg eller tilbage til http://test.dk/MVC18235.jpg. Det kunne bare være vha. links over eller under billedet. Hvis siden ikke findes kan der bare stå at siden ikke findes.

Håber I forstår hvad jeg mener!

På forhånd tak!
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 19:14 #1
Jeg har prøvet at opbygge en simpel side:

Et frameset:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<frameset rows="439,186" cols="*">
  <frame name="hoved" src="head.htm">
  <frame src="bottom.htm">
</frameset>
<noframes><body bgcolor="#FFFFFF" text="#000000">

</body></noframes>
</html>


En side hvor billedet vises:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<img src="http://test/MVC18236.jpg">
</body>
</html>


Og en navigationsside:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p><a href="" target="hoved">Frem</a></p>
<p><a href="" target="hoved">Tilbage</a></p>
</body>
</html>


Meningen er så at når man klikker på henholdsvis Frem og Tilbage, at billedet udskiftes i øverste frame, altså filnavnet + 1 for Frem eller - 1 for Tilbage.


Er det noget der kan lade sig gøre?
Avatar billede roenving Novice
26. oktober 2004 - 19:25 #2
Måske med:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function nextPic(dir){
  var img = parent.frames['hoved'].images[0];
  var navn = img.src.replace(/^(.*?)(\d+)(\..*)$/,"$1|$2|$3");
  var newName = +navn.split("|")[1] + dir;
  img.src = navn.split("|")[0] + newName + navn.split("|")[2];
}
</script>
</head>

<body>
<p><a href="#" onclick="nextPic(1);return false;">Frem</a></p>
<p><a href="#" onclick="nextPic(-1);return false;">Tilbage</a></p>
</body>
</html>
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 19:42 #3
Det virker ikke!

Kan det være fordi at det rigtige billede har en anden biblioteksstruktur end den jeg skrev.

Hvad skal der stå i scriptet hvis billedet f.eks. er: http://john-nissen.dk/MVC18236.jpg
Avatar billede roenving Novice
26. oktober 2004 - 19:51 #4
-- er alle billeder .jpg ?-)
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 19:52 #5
Ja, det er de!
Avatar billede roenving Novice
26. oktober 2004 - 20:03 #6
Så kan det forenkles til:

<script type="text/javascript">
function nextPic(dir){
  var img = parent.frames['hoved'].images[0];
  var navn = img.src.replace(/^(.*?)(\d+)\.jpg$/,"$1|$2");
  var newName = +navn.split("|")[1] + dir;
  img.src = navn.split("|")[0] + newName + ".jpg";
}
</script>
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 20:08 #7
Hvis du har lavet scriptet udfra http://john-nissen.dk/MVC18236.jpg, så virker det stadig ikke, så står der at "Der opstod en fejl på siden". Fejl: 'parent.frames.hoved.images.0' er null eller ikke et objekt

Hvad kan der være galt?
Avatar billede roenving Novice
26. oktober 2004 - 20:14 #8
Jeg kiggede lidt på dit frameset, og var i tvivl om, i hvilken frame, du havde dine forskellige filer, og det har du jo ikke angivet ...
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 20:55 #9
Selve billedet ligger head.htm og linkene ligger i bottom.htm.
Avatar billede roenving Novice
26. oktober 2004 - 20:59 #10
Argh, jeg har jo glemt document ...

<script type="text/javascript">
function nextPic(dir){
  var img = parent.frames['hoved'].document.images[0];
  var navn = img.src.replace(/^(.*?)(\d+)\.jpg$/,"$1|$2");
  var newName = +navn.split("|")[1] + dir;
  img.src = navn.split("|")[0] + newName + ".jpg";
}
</script>
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 21:02 #11
Genialt! Det virker jo perfekt.

Tak for hjælpen

Hvis du lige laver et svar kan du få dine 200 point!
Avatar billede roenving Novice
26. oktober 2004 - 21:05 #12
200 point er alt for meget, så behold du selv de fleste !-)

Els velbekomme '-)
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 21:13 #13
Der er desværre dukket et lille problem op. Når et billede f.eks. hedder test-001.jpg, og man klikker på Frem, kommer næste billede til at hedde test-2.jpg. De 2 nuller mangler altså.
Avatar billede roenving Novice
26. oktober 2004 - 21:17 #14
Tjah, det har du ret i, det kan den ovenstående ikke klare ...

Hrm, tjah, bom, bom, den skal jeg lige lure lidt på, for den skulle jo også gerne kunne skifte fra x09 til x10 ...
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 21:20 #15
Ja, det har du ret i! Kan den ikke laves så der henholdsvis lægges 1 til eller trækkes fra, uanset hvor stort tallet er?
Avatar billede roenving Novice
26. oktober 2004 - 21:27 #16
Problemet er at sikre, at tallet har samme længde efter at der er tillagt tallet, men så må vi jo aftaste den længde ...

<script type="text/javascript">
function nextPic(dir){
  var img = parent.frames['hoved'].document.images[0];
  var navn = img.src.replace(/^(.*?)(0*)(\d+)\.jpg$/,"$1|$2|$3");
  var newName = navn.split("|");
  var len = newName[1].length + newName[2].length;
  newName[2] = +newName[2] + dir;
  newName[1] = newName[1] + newName[2];
  img.src = navn.split("|")[0] + newName[1].substring(newName[1].length-len) + ".jpg";
}
</script>

-- jeg har ikke lige en samling billeder at prøve med selv, så der er kun mulighed for at du tester !-)
Avatar billede jnrmgs Juniormester
26. oktober 2004 - 21:58 #17
Det virker nu helt efter hensigten.

Takker!

Her har du lidt point!
Avatar billede roenving Novice
26. oktober 2004 - 22:01 #18
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester