Avatar billede elmer_fjot Nybegynder
15. juli 2001 - 08:13 Der er 15 kommentarer og
1 løsning

find antal billedfiler

Jeg har et script hvor man kan klikke sig vej gennem et antal billeder, et lysbilledshow. Kan jeg få javascript til på forhånd, at se hvor mange billeder der ligger i mappen?

Mvh fjot
Avatar billede euroman28 Nybegynder
15. juli 2001 - 08:47 #1
Nej, men du kan gøre det med ASP
Avatar billede jakoba Nybegynder
15. juli 2001 - 10:24 #2
eller PHP eller hvad du nu har adgang til af serverside-sprog.

Men hvis du ikke har adgang til at programmere serverside, kan man nok finde en løsning alligevel. hvordan ser scriptet ud?
Avatar billede elmer_fjot Nybegynder
15. juli 2001 - 16:45 #3
http://www.fjot.subnet.dk/

<HTML>
<HEAD><TITLE>test</TITLE>
<SCRIPT LANGUAGE=\"Javascript\">
<!--
if (navigator.appName != \'Netscape\' && navigator.appVersion.charAt(0) < 3 || navigator.appName != \'Microsoft Internet Explorer\' && navigator.appVersion.charAt(0) < 4) Netscape3 = false
else Netscape3 = true;

if (Netscape3) {
        Counter = 1;
        pictCount = 10;
        genre = \"brudepar\";
        loadingPict = new Image(220,330);
        loadingPict.src = \"grafik/loading.gif\";
}

function update(direction) {
        if (Netscape3) {
                Counter = Counter + direction;
                if (Counter < 1) Counter = pictCount;
                if (Counter > pictCount) Counter = 1;
                document.images.fut.src = loadingPict.src;
                document.images.fut.src = \"img/\" + genre + \"/\" + Counter + \".jpg\";
                document.images.tal_v.src = \"numbers/\" + Counter + \".gif\";
                document.images.tal_h.src = \"numbers/\" + pictCount + \".gif\";
        }
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR=\"#ffffff\">

<IMG name=\"fut\" HEIGHT=\"220\" WIDTH=\"330\" SRC=\"img/brudepar/1.jpg\" BORDER=\"0\" ALIGN=\"middle\"><br>
<br>
<A HREF=\"java script:update(-1)\" ONMOUSEOVER=\"window.status=\'Forrige ...\';return true\" ONFOCUS=\"this.blur();\">
<IMG HEIGHT=\"27\" WIDTH=\"24\" SRC=\"grafik/pil_tv.jpg\" ALIGN=\"middle\" BORDER=\"0\">
</A> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<IMG name=\"tal_v\" HEIGHT=\"18\" WIDTH=\"20\" SRC=\"numbers/1.gif\" BORDER=\"0\" ALIGN=\"middle\">
<IMG HEIGHT=\"18\" WIDTH=\"20\" SRC=\"numbers/af.gif\" BORDER=\"0\" ALIGN=\"middle\"> <IMG name=\"tal_h\" HEIGHT=\"18\" WIDTH=\"20\" SRC=\"numbers/10.gif\" BORDER=\"0\" ALIGN=\"middle\">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF=\"java script:update(1)\" ONMOUSEOVER=\"window.status=\'N&aelig;ste ...\';return true\" ONFOCUS=\"this.blur();\">
<IMG HEIGHT=\"27\" WIDTH=\"24\" SRC=\"grafik/pil_th.jpg\" ALIGN=\"middle\" BORDER=\"0\">
</A>
</BODY>

</HTML>

Fidusen er at man så kunne oploade flere billeder uden at skulle rette i scriptet.

fjot
Avatar billede jakoba Nybegynder
15. juli 2001 - 17:04 #4
i hver af dine billedmapper kan du lægge en lille .js fil

mappeinfo.js  som blot indeholder 2 linier:
      var pictCount = 10;        // antal billeder i mappen
      var genre = \'brudepar\';    // mappenavnet


Din .html fil rettes så til:

<HTML>
<HEAD><TITLE>test</TITLE>

<!-- TILFØJET 2 linier herunder -->
<script language=\"Javascript\" src=\'img/brudepar/mappeinfo.js\'>
</script>

<SCRIPT LANGUAGE=\"Javascript\">
<!--
if (navigator.appName != \'Netscape\' && navigator.appVersion.charAt(0) < 3 || navigator.appName != \'Microsoft Internet Explorer\' && navigator.appVersion.charAt(0) < 4) Netscape3 = false
else Netscape3 = true;

if (Netscape3) {
        Counter = 1;
//FJERNET linie:        pictCount = 10;
//FJERNET linie:        genre = \"brudepar\";
        loadingPict = new Image(220,330);
        loadingPict.src = \"grafik/loading.gif\";
}

function update(direction) {
        if (Netscape3) {
                Counter = Counter + direction;
                if (Counter < 1) Counter = pictCount;
                if (Counter > pictCount) Counter = 1;
                document.images.fut.src = loadingPict.src;
                document.images.fut.src = \"img/\" + genre + \"/\" + Counter + \".jpg\";
                document.images.tal_v.src = \"numbers/\" + Counter + \".gif\";
                document.images.tal_h.src = \"numbers/\" + pictCount + \".gif\";
        }
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR=\"#ffffff\">

<IMG name=\"fut\" HEIGHT=\"220\" WIDTH=\"330\" SRC=\"img/brudepar/1.jpg\" BORDER=\"0\" ALIGN=\"middle\"><br>
<br>
<A HREF=\"java script:update(-1)\" ONMOUSEOVER=\"window.status=\'Forrige ...\';return true\" ONFOCUS=\"this.blur();\">
<IMG HEIGHT=\"27\" WIDTH=\"24\" SRC=\"grafik/pil_tv.jpg\" ALIGN=\"middle\" BORDER=\"0\">
</A> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<IMG name=\"tal_v\" HEIGHT=\"18\" WIDTH=\"20\" SRC=\"numbers/1.gif\" BORDER=\"0\" ALIGN=\"middle\">
<IMG HEIGHT=\"18\" WIDTH=\"20\" SRC=\"numbers/af.gif\" BORDER=\"0\" ALIGN=\"middle\"> <IMG name=\"tal_h\" HEIGHT=\"18\" WIDTH=\"20\" SRC=\"numbers/10.gif\" BORDER=\"0\" ALIGN=\"middle\">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF=\"java script:update(1)\" ONMOUSEOVER=\"window.status=\'N&aelig;ste ...\';return true\" ONFOCUS=\"this.blur();\">
<IMG HEIGHT=\"27\" WIDTH=\"24\" SRC=\"grafik/pil_th.jpg\" ALIGN=\"middle\" BORDER=\"0\">
</A>
</BODY>

</HTML>

Så er det kun den .js fil der skal rettes i når du tilføjer flere filer i mappen.

Det er ikke strengt nødvendigt at glytte  genre  variablen ud i .js filen, men ved at gøre det slipper for at have \'brudepar\' stående 2 steder i filen.

mvh JakobA
Avatar billede jakoba Nybegynder
15. juli 2001 - 17:07 #5
Ups.  glytte -> flytte
Avatar billede tango Nybegynder
15. juli 2001 - 19:40 #6
Hvad er formålet med overbygningen på dit script ???

Er det for at du kan hente et antal billeder ind i dit slideshow uden at du egentlig ved hvor mange der lige ligger pt. ? Altså variende antal billeder i slideshowet, som du så vil checke for ?

Hvis det er for at kunne have et udefineret antal billeder i slideshowet og stadig få det til at gå  i ring ( og du f. eks. ikke selv lægger bilelder op i mappen eller mapperne) kan jeg evt. hjælpe.

Det kræver dog, at du har mulighed for at styre billedernes navne, eller ved på forhånd hvad du vil kalde dem.

Lad mig vide, hvad det præcise formål er.
Metoden er selvfølgelig at bruge onError-handleren til at lade et javascript opdatere (eller trawle) efter billeder. Jeg har bygget et par stykker, der simulerer databasefunktion. Absolut skod-kode, men det virker.
Avatar billede elmer_fjot Nybegynder
16. juli 2001 - 07:43 #7
Det du beskriver er lige præcis formålet. Billederne kunne f.eks. være nummererede 1.jpg, 2.jpg, 3.jpg osv.
Gir\' du en opskrift bliver jeg meget glad.

Mvh fjot
Avatar billede tango Nybegynder
16. juli 2001 - 10:51 #8
ok, jeg har virkelig travlt med at holde ferie lige nu, min kæreste er på nakken af mig hvis jeg nærmer mig \"dyret\" her... men...
Prøv at kigge på www.aabnedoere.dk/test.html eller www.aaabnedoere.dk/oversigt.html det er to eksempler på brug af onError-funktionen som en slags database-skod-kode-simulator. Du kan evt. downloade(gemme på disken med IE.50) og så kigge i kortene. Showet f. eks. kan sagtens modificeres til at vise manuelt osv.

Jeg fik den lumske mistanke, at formålet med \"at se hvor mange billeder\" bare var for at kunne skrive i dit show \"billede x ud af y\". Men det bliver nok svært. Jeg har selv på /oversigt måtte skrive, at der er CIRKA 100 billeder man kan trawle igennem...
Nå men kig koden og se om der er noget du kan bruge, eller om jeg skal hjælpe lidt...

Pris: Absolut ikke noget med point eller kolde pils, men der er et stor problem med mit script, som gerne skulle løses: Lortet virker ikke, ja nærmest smadrer IE5.0 og Netscape FOR MACINTOSH.
Jeg har prøvet adskillige postings her og på internationale sider, men ikke fået noget hjælp endnu.
Det svære er selvfølgelig, at jeg ikke selv har en MAC, så jeg kan ike sidde og debugge...

Men som sagt, du er velkommen til at kigge og modificere osv.
Avatar billede elmer_fjot Nybegynder
16. juli 2001 - 12:23 #9
Jeg er ikke nogen ørn til javascript. Jeg har en gammel Mac med Netscape 3.04. Den er ikke koblet på nettet men jeg har downloaded filerne www.aabnedoere.dk/test.html og kopieret dem til Mac\'en.
Netscape melder følgende fejl:
1.
JavaScript Error: file:/Performa%206320/AABNED~1/TEST.HTM, line 50:
syntax error.
var mfBanners = [
................^

2.
JavaScript Error: file:/Performa%206320/AABNED~1/TEST.HTM, line 13:
bw is not a number

Der kan sagtens være flere fejl. Jeg ved ikke om du kan bruge det til noget. Når man kopiere filer mellem Mac og PC må filnavnene kun være på 8 karaktere og ingen æ, ø og å osv., om det har noget at sige i den her forbindelse ved jeg ikke.
God ferie.
Mvh fjot
Avatar billede jakoba Nybegynder
16. juli 2001 - 12:42 #10
har kikket kort på siden i PC (dvs ikke MAC)
angående bannerrotations script på siden www.aabnedoere.dk/test.html
set med: IE 4.01 på Wim98 PC

efter ca 50 sekunder kommer:
fejlmeddelelse 1 >  \"programmet har udført en ulovlig handling\"
når der klikkes Ok til den kommer:
fejlmeddelelse 2 >  \"Der opstod en intern fejl, og et af de aktive vinduer vil
                      blive lukket. Det anbefales, at du gemmer dit arbejde, lukker
                      alle programmer og genstarter computeren\"

Det er en af de grimmere fejl at få så det script vil jeg ikke anbefale. Har lige kikket scriptet igennem, men kan ikke umiddelbart overskue hvor det går galt.

kikker mere, men det tar tid. så hils kæresten og hold ferie :)

mvh JakobA
Avatar billede tango Nybegynder
16. juli 2001 - 13:14 #11
jamen, jeg er da ikke helt på ferie, kan bare ikkke sidddde og nøøøøøøørrde den hele tiden...
Tjah IE4.0 + for windows....
1. Kommer der menusystem op ??? (det skulle der gerne, det skulle være kompatibelt fra 4+ undtagen mac, ie5+)
2. Scriptet er tricky, fodi det netop bruger onError-handleren. Jeg har IKKE taget højde for, at scriptet kører off-line: DVS: onerror-handleren går ind i en uendelig løkke, hvis det ikke fodres med billeder.
3. Jeg ved ikke om det dybest set er her i _fjot´s tråd at diskutere detaljer i mit script, det må være op til _fjot at afgøre. Jeg gør opmærksom på, at jeg har forsøgt at poste på eksperten vedr.  disse  problemer med scriptet.
4. Under alle omstændigheder er I velkomne til at skille mit script ad og modificere det til yderligere ubrugerlighed.
Foreløbig garanterer jeg kun funktionalitet i IE 5.0
+ netscape 4x.

5. kernen i scriptet er:

A: Et <div>tag er placeret i body-en
B: En function i head (altså et script) skriver til innerthml (IE) eller document.layer (netscape)
[med den nye src på billedet, url og hvad man nu har lyst til, f. eks. den omtalte onerror-handler, der er kerenen i database-simuleringen]
Denne kerne skulle mig bekendt være ok fra IE 4+
men IE MAC kan vist ike noget seriøst med DHTML før vers. 5.
C: Et tredie script sørger for centrering (positionering) af div. Der er antagelig her dcet hele fucker. Det skulle sikkert integreres i skrivning til div-et direkte, altså i B.


Sommerhilsen fra strandkanten
Tangø, Århus Danmark
Avatar billede jakoba Nybegynder
16. juli 2001 - 13:29 #12
2.  den onerror handler er ikke god at bruge. dels som du sige pga uendelig løkke problem (men det kan nu fixes). men mest fordi den ikke er pålideligt implementeret i mange versioner af browserne (herunder MAC).
    Hvis du istedet bruger en  settimeout( \"det_gik_ikke();\", millisecs );  får du et mere konsistent og pålideligt resultat. Bagsiden er at du skal vente hele timeoutet for at få et pålideligt nej. ikke godt til et \'prøve sig frem\' script.

alt ialt vil jeg påstå min .js fil er en bedre løsning, selvom også den skal opdateres manuelt.

mvh JakobA
Avatar billede tango Nybegynder
16. juli 2001 - 14:02 #13
hvor ser du disse cross-browser-referencer ???
(som f. eks. at onError-handleren for img.src ikke er understøttet i IE 5.0 for MAC ?)
Avatar billede jakoba Nybegynder
16. juli 2001 - 14:20 #14
Desværre. det er kun \"mine konklusioner på basis af erfaring\".
Og min erfaring er da heller ikke større end at det kan være galt.

Ifølge javascript standarden fra v1.2 burde det virke hver gang.
Microsoft siger at IE er v1.2 kompatibel fra version 4.

Men det virker som sagt ikke for godt.

mvh JakobA
Avatar billede olebole Juniormester
17. juli 2001 - 01:38 #15
<ole>
jakoba >> \'onerror\' fungerer fint i Mac/IE5, men ikke altid i Mac/IE4.5 (nok afhængig af \'build\'), men det skulle vel også undre, da den formodentlig er MS\' dårligste...nogensinde!
Det bedste man kan sige om den er: Der er huller mellem fejlene  :)
/mvh
</bole>
Avatar billede elmer_fjot Nybegynder
17. juli 2001 - 07:31 #16
Jeg siger tusind tak for svarene til både jakoba og tango.
Mvh fjot
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