Bestandsnaam etc.

Status
Niet open voor verdere reacties.

andre86

Gebruiker
Lid geworden
6 nov 2006
Berichten
42
Goedemorgen,

Helaas kom ik niet verder met een (simpel) scriptje voor een fotoalbum. Ik ben geen JavaScript prof dus heb is mijn code erg simpel, vandaar dat het daarom fout gaat.

Onderstaande script is html:

<img onclick="resize(this);" src="images/P8062138 (Custom).jpg" />

Bij klikken wordt dus de functie resize gestart:

function resize(that)
{
var pathname = that.src;
var filename = pathname.substr(pathname.lastIndexOf("/")+1,pathname.length);
var filename = filename.substr(0, (filename.length - 15));
var filename = "images/"+filename+".jpg";
foto.src = filename;
}


De bedoeling is dat de funcitie van de bestandsnaam de laatste 15 tekens weg haalt (dus (Custom).jpg moet weg). Aan de bestadsnaam die nu overblijft voeg ik dan weer .jpg aan toe zodat er een andere afbeelding aangeroepen wordt. Op IE7 op mijn pc gaat het goed. Bij Mozilla gaat het echter weer fout en ook op andere pc's werkt het niet in IE. Heel vreemd dus.

Weet iemand wat er verbeterd moet worden aan de code zodat de code wel betrouwbaar werkt?

Als er iemand is die een ander idee heeft voor de opzet (dus Custom.jpg weghalen en daarvoor in de plaats alleen .jpg) dan hoor ik dat graag!

Groeten en alvast heel hartelijk bedankt!

Andre
 
Je gebruikte foto.src waar het that.src had moeten zijn (laatste zin) en meerder malen var filenaam =

var gebruik je alleen een eerste keer als je de variabele declareert. :)

Zo werkt 't al:
PHP:
 function resize(that) {
  var pathname = that.src;
  var filename = pathname.substr(pathname.lastIndexOf('/') + 1,pathname.length);
  filename = filename.substr(0, (filename.length - 15));
  filename = 'images/' + filename + '.jpg';
  that.src = filename;
  };
Maar 't kan iets korter: ;)
PHP:
 function resize(img) {
  img.src = unescape(img.src).replace(' (Custom)','');
  };
unescape() haalt de escape tekens zoals %20 voor een spatie weg en .replace(' (Custom)','') vervangt spatie + (Costum) door een lege string (knipt het eruit). :)

Een voordeel is ook nog dat je na 2x klikken niet images/.jpg overhoudt.


Vr.Gr. Egel.
 
Bedankt voor de uitleg en de code is zo idd korter. Alleen werkte het nog niet helemaal.

ipv jouw code

function resize(img) {
img.src = unescape(img.src).replace(' (Custom)','');
}

gebruik ik nu dit en dat werkt wel in IE maar nog steeds niet in FireFox:(

function resize(that) {
foto.src = unescape(that.src).replace(' (Custom)','');
}

No steeds hetzelfde probleem alleen de code is nu wel korter, bedankt.

Even voor de duidelijkheid: Niet de afbeelding waar op geklikt wordt moet vergroot worden maar een een andere img (die variabel is zegmaar).
 
Laatst bewerkt:
Wat Egel ook al in de vorige post zei, je gebruikt foto.src, terwijl je die variabele (foto) nergens aanmaakt / meegeeft... :)
 
Gelukt

Het is gelukt. Voor de duidelijkheid: foto is een afbeelding die telkens vervangen moet worden door de afbeelding waarop wordt geklikt wordt. (uit de thumbnails). Maar het is gelukt met onderstaande code:

De afbeelding moet in FireFox worden aangeroepen met document.images.....

function resize(that) {
var naam = that.src;
document.images.foto.src = unescape(naam).replace(' (Custom)','');
}

Bedankt Egel!
 
Ik zou daar dan "document.getElementById("...") van maken en in dat img-element datzelfde id opnemen.

Overigens is dat hele "foto"-gedoe niet echt op te maken uit je (start)posts.
 
Mijn startpost was erg onduidelijk idd. Het ging mij ook eigenlijk alleen hoe javascript de bestandsnaam kon wijzigen. Bedankt voor je laatste tip trouwens!

Groeten Andre

Ik zou daar dan "document.getElementById("...") van maken en in dat img-element datzelfde id opnemen.

Overigens is dat hele "foto"-gedoe niet echt op te maken uit je (start)posts.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan