Avatar billede langthjem Nybegynder
17. august 2003 - 18:58 Der er 31 kommentarer og
1 løsning

IMG og innerHTML

Jeg har lavet dette script:

function LoadCategory(myCat) {
if (myCat == 'Dyr') { CatArray = new Array(1,3); }

CatContent = '<br>Vis oversigt<br><br>';
for (i=0;i<CatArray.length;i++) {
CatContent += '<img src=billeder/thumb/' + CatArray i + '.jpg border=0 onClick=ShowImg(' + CatArray i + ')><br>';
}
document.getElementById('ListGalleriVis').innerHTML = CatContent;
}

Det virker efter hensigten, næsten... problemet er, at den ikke loader billederne, den laver bare IMG tag'et, og ikke mere. Man kan få vist billedet ved at højreklikke på det og vælge 'Vis billede', men det er jo ikke så skide brugervenligt, hvordan tvinger jeg billederne til at loade?

\\ Langthjem
Avatar billede langthjem Nybegynder
17. august 2003 - 19:01 #1
Det skal lige siges at skidtet virker i NS, men ikke i IE.
Avatar billede grunken Nybegynder
17. august 2003 - 19:09 #2
det her virker ganske fint her!

function LoadCategory(myCat) {
if (myCat == "Dyr") { CatArray = new Array(1,3); }

CatContent = "<br>Vis oversigt<br><br>";
for (i=0;i<CatArray.length;i++) {
CatContent += "<img src=\"billeder/thumb/" + CatArray[i] + ".jpg\" border=0 onClick=\"ShowImg(" + CatArray[i] + ")\"><br>";
}
document.getElementById('ListGalleriVis').innerHTML = CatContent;
}
Avatar billede grunken Nybegynder
17. august 2003 - 19:11 #3
men igen, jeg har heller aldrig oplevet billeder der ikke loader i en innerhtml, måske det er mere?
Avatar billede langthjem Nybegynder
17. august 2003 - 20:18 #4
Jeg har dette script på samme side, og det virker upåklageligt, kan du se nogen forskel som gør at det første script ikke skulle virke?

function ShowImg(myImg) {
    myHTML = '<table cellspacing=0 cellpadding=0 width=100% height=100%><tr><td style=vertical-align:middle><center>';
    myHTML += '<img src=billeder/' + myImg + '.jpg border=0>'
    myHTML += '</center></td></tr></table>'
    document.getElementById('IndholdGalleriVis').innerHTML = myHTML;
}
Avatar billede grunken Nybegynder
17. august 2003 - 21:20 #5
godt, er lige nødt til at spørge mig lidt frem så ;)

i det første fremviste script ser noget af din innerHTML sådan ud

src=billeder/thumb/' + CatArray i + '

dette er bestemt ikke korrekt syntax ;), men tror du har rettet det da du siger at scriptet fungerer!

vi er enige om at dine "thumbs" hedder 1.jpg, og 3.jpg?

hvis jeg skal komme med yderlige forslag er du nok nødt til at smide et evt. link, da flere forslag herfra vil være baseret på gætteri ;)
Avatar billede langthjem Nybegynder
17. august 2003 - 22:02 #6
Avatar billede grunken Nybegynder
17. august 2003 - 22:48 #7
fed side ;)

men stadig helt uforstående over for problemet, kan se at det kun er 1 gang man har problemer man klikker på linket så snat billedet er cashed virker det eminent, lad os prøve at tilføje en gang preload!

CatContent = '<br>Vis oversigt<br><br>';
pics = new Array(CatArray.length);

for (i=0;i<CatArray.length;i++) {
pics[i] = new Image();
pics[i].src = "./billeder/thumb/" + CatArray[i] + ".jpg";

o.s.v
Avatar billede grunken Nybegynder
17. august 2003 - 22:50 #8
og når jeg på et tidspunkt lærer at stave så ville alt nok osse være lidt lettere at forstå *G*
Avatar billede langthjem Nybegynder
17. august 2003 - 23:15 #9
Det hjælper ikke ... jeg er snart skaldet af at rykke mig i håret i desparation!
Avatar billede grunken Nybegynder
17. august 2003 - 23:16 #10
sådan selvfølgelig

function LoadCategory(myCat) {
if (myCat == "Dyr") { CatArray = new Array(1,3); }

CatContent = '<br>Vis oversigt<br><br>';
pics = new Array(CatArray.length){

for (i=0;i<CatArray.length;i++) {
pics[i] = new Image();
pics[i].src = "./billeder/thumb/" + CatArray[i] + ".jpg";
CatContent += "<img src=\"billeder/thumb/" + CatArray[i] + ".jpg\" border=0 onClick=\"ShowImg(" + CatArray[i] + ")\"><br>";
}
document.getElementById('ListGalleriVis').innerHTML = CatContent;
}

;)
Avatar billede grunken Nybegynder
17. august 2003 - 23:17 #11
okay så står jeg knælme osse af :(
Avatar billede grunken Nybegynder
17. august 2003 - 23:21 #12
okay sidste forsøg på at omskrive functionen!

function LoadCategory(myCat) {
if (myCat == 'Erotisk') { CatArray = new Array('1','3'); }
if (myCat == 'Romantisk') { CatArray = new Array('2'); }

e = document.getElementById('ListGalleriVis')
e .innerHTML = "";

CatContent = '<br>Vis oversigt<br><br>';
  for (i=0;i<CatArray.length;i++) {
  e.innerHTML += '<img src=\"billeder/thumb/' + CatArray[i] + '.jpg\" name=\"Img' + i + '\" border=\"0\" onClick=\"ShowImg(' + CatArray[i] + ')\"><br>';
  }
}
Avatar billede langthjem Nybegynder
17. august 2003 - 23:33 #13
Nope ... desværre, det virker heller ikke... ARGH!
Avatar billede grunken Nybegynder
17. august 2003 - 23:48 #14
prøv lige at gøre nøjagtigt som jeg har gjort...

ellers må der jo mere sofistikerede metoder i brug ;D
Avatar billede langthjem Nybegynder
18. august 2003 - 00:52 #15
Tjek lige mit script igen, har lavet nogle ændringer, men den skjuler stadig billederne.
Avatar billede roenving Novice
18. august 2003 - 01:06 #16
Det var da en spøjs en du har sat ind (image.reload !-)

Men jeg tror jeg ville:

        function LoadCategory(myCat) {
            document.getElementById('ListGalleriVis').innerHTML = '';
CatArray = new Array();
            if (myCat == 'Erotisk') { CatArray = ['1','3']; }
            if (myCat == 'Romantisk') { CatArray = ['2']; }

            CatContent = '<br><a href=java script:void(0) onClick=ListGalleries() onFocus=blur()>Vis oversigt &#187;</a><br><br>';
            for (i=0;i<CatArray.length;i++) {
                CatContent += '<img src=billeder/thumb/' + CatArray[i] + '.jpg name=Img' + i + ' border=0 width=110 onClick=ShowImg(' + CatArray[i] + ')>';
            }

            document.getElementById('ListGalleriVis').innerHTML = CatContent;

//Hvad er dette ??            for (i=0;i<CatArray.length;i++) {
//                document.getElementById('Img' + i).reload(true);
//            }
        }

-- jeg har ikke lige prøvet det her med at erklære dobbelt, men da jeg ideligt fik fejl på at CatArray ikke eksisterede, må vi skulle lede i den retning !-)
Avatar billede langthjem Nybegynder
18. august 2003 - 01:11 #17
Man forsøger sig med alt muligt, og du har ramt indenfor 10 sekunder, for jeg fjernede den reload kommando med det samme. Har nu testet dit script, og erklærer det for ikke en fløjtende fis bedre ... det var dog utroligt så hård denne nød er at knække!
Avatar billede langthjem Nybegynder
18. august 2003 - 01:14 #18
Er der ikke en metode så man kan tvinge den til at hente billedet igen? Det undrer mig at den ikke engang viser et "broken image", det burde den hvis det er stien den er gal med... det er som om den bare skjuler det.
Avatar billede roenving Novice
18. august 2003 - 01:19 #19
Der må være en fejl med koden, så den ikke når at få html-koden genereret, hvilket den fejl med CatArray også tyder på ...

Og, ja, når man forsøger med _alt_ så ryger der selvfølgelig også en finke af panden engang imellem ...

Jeg ville forøvrigt forsøge mig med at skrive det 'rigtigt', altså med parameter-værdier i gåseøjne (i rigtig mange af dine linjer !-), à la:

            CatContent = '<br><a href="java script:void(0)" onClick="ListGalleries()" onFocus="this.blur()">Vis oversigt &#187;</a><br><br>';

Javascript har to forskellige streng-delimiters, det er en fordel at udnytte dem !-)
Avatar billede langthjem Nybegynder
18. august 2003 - 01:24 #20
Det har jeg nu skrevet ind igen, havde fjernet mine delimiters fordi jeg tænkte at det kunne lave forvirring, men nej!
Er vi derhenne hvor jeg bør overveje en alternativ måde at lave skidtet på?
Avatar billede roenving Novice
18. august 2003 - 01:33 #21
Måske ...

Så meget har jeg ikke nået at kigge i din kode -- men det har grunken vel ...

Forøvrigt kan du ikke skrive onfocus="blur()" -- i javascript skal man som hovedregel _altid_ have et objekt en metode kan arbejde på, så den skal hedde this.blur() ...

Men jeg prøver lige at hive den ind i min egen webwriter, så kan det være jeg opdager noget !-)
Avatar billede roenving Novice
18. august 2003 - 01:49 #22
Ha, det er åbenbart noget som ligner det klassiske preloader-problem -- og jeg har desværre ikke en løsning -- endnu håber jeg !-)

Een gang fik jeg det faktisk til at virke efter jeg havde skrevet et eller andet efter adressen og så gik tilbage ...

-- men jeg kan ikke lige få øje på andet end den der blur-ting -- og den har jo ikke det fjerneste med problemet at gøre ...
Avatar billede langthjem Nybegynder
18. august 2003 - 08:26 #23
Den blur() metode er bare det gamle alternativ til hideactive(), og den sørger bare for at objektet ikke får den der skide stiplede "aktiv" linie udenom når man klikker.
Avatar billede grunken Nybegynder
18. august 2003 - 10:24 #24
prøver så lige at tilføje lidt ;)

syns det er pokkers det her, har efterhånden lavet en del scripts med innerHTML :(

men her!

    function LoadCategory(myCat) {
            document.getElementById('ListGalleriVis').innerHTML = '';
            CatArray = new Array();
            if (myCat == 'Erotisk') { CatArray = ['1','3']; }
            if (myCat == 'Romantisk') { CatArray = ['2']; }

            CatContent = '<br><a href="java script:void(0)" onClick="ListGalleries()" onFocus="blur()">Vis oversigt &#187;</a><br><br>';
            for (i=0;i<CatArray.length;i++) {
                CatContent += '<img src="billeder/thumb/' + CatArray[i] + '.jpg" ID="img'+i+'" border="0" width="110" onClick="ShowImg(' + CatArray[i] + ')">';
            }

            document.getElementById('ListGalleriVis').innerHTML = CatContent;

        showCategory(CatArray);
    }
        function showCategory(arr){

        for(i=0;i<arr.length;i++){
          document.getElementById('img'+i).src = "./billeder/thumb/"+arr[i]+".jpg";
    }
      }
Avatar billede langthjem Nybegynder
18. august 2003 - 11:43 #25
Hmm ... takker for scriptet, men det hjælper intet, den viser stadig først billederne når man vælger "Vis billede" i context menuen.
Avatar billede roenving Novice
18. august 2003 - 11:50 #26
>>grunken (og også dig, langthjem !-)

Vi må da for f***** kunne finde en metode, som kan finde sådan en billed-fil, som jeg skrev tidligere ligner det uhyggeligt meget preloader-problemet ...

Hvordan kan det være at browseren ikke renderer/henter for alvor ?-)

(This is brainstorming !-)
Avatar billede langthjem Nybegynder
18. august 2003 - 11:53 #27
Den tilføjer en "hide" funktion som default? Den aktiverer ikke billedet som et objekt der skal loades?
NB: Har lagt mærke til at den fint læser højde og bredde på billedet!
Avatar billede roenving Novice
18. august 2003 - 12:13 #28
Ja, langthjem, præcis, hvorfor undlader den så resten af processen ?-)
Avatar billede langthjem Nybegynder
18. august 2003 - 13:47 #29
Hmm ... ved det ikke ... men jeg takker mange gange for hjælpen, jeg har nu bidt i det sure æble og har lavet skidtet i ASP med en IFRAME, kan sgu' ikke forsvare for kunden at bruge så meget tid på det :-)
Skal vi finde ud af noget med pointene selvom problemet forbli'r uløst?
Avatar billede grunken Nybegynder
18. august 2003 - 17:06 #30
tag endelig dem tilbage ;), og når du lige for tid kan du så ikke prøve en miniversion af dit script, kun med de to nødvendige divs, og uden styles, vil meget gerne se om den her kan knækkes ;D
Avatar billede langthjem Nybegynder
18. august 2003 - 17:21 #31
Det skal jeg nok gøre ... så får du lige besked.
Avatar billede langthjem Nybegynder
18. august 2003 - 23:19 #32
Spørgsmålet er lukket!
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