Avatar billede tvilling53 Seniormester
23. september 2021 - 11:37 Der er 1 kommentar og
1 løsning

variabel scope

Hej
jeg har fundte følgende kode på youtybe hvor man henter et billede fra sit gallery og så uploade det til en server, men har problemer med at få det til at virke.
<img src="img/placeholder.png" onclick="triggerClick()" id="profileDisplay">
<input type="file"name="profileImage" onchange="displayImage(this)" id="profileImage" style="display:none">

function triggerClick()
    {  document.querySelector('#profileImage').click();
    }

    function displayImage(e)
    {  if(e.files[0])
        {  var reader = new FileReader();
            reader.onload = function(e)
            { document.querySelector('#profileDisplay').setIdAttribute('src', e.target.result);
            }
            reader.readAsDataUrl(e.files[0]);
        }
    }   
hvis jeg markere variablen 'e' er der kun 2 eller 3 der bliver highlightet afhængigt af om det er yderste eller inderste function.

Koden kan ses 16:59 inde i dette link:
https://www.youtube.com/watch?v=KsRxTHyqjsQ&t=0s

Håber at der er en der kan hjælpe mig med at fikse dette eller hjælpe med noget andet kode.

VH Thomas V.
Avatar billede NVedsted Juniormester
27. september 2021 - 15:47 #1
Hej, Thomas.

Funktionen displayImage har parameteren e, hvilket er det e, som du vil møde uden for "reader.onload"-funktionen, da denne anonyme funktion også har en parameter der hedder e. Så inde i denne funktion vil e altså være den indre parameter.

Et kort eksempel der illustrerer dette:
function ydreFunktion(e) {
    // Her er det ydre e, som vil blive brugt.
    function indreFunktion(e) {
        // Her er det indre e, som vil blive brugt.
    }
    // Her er det ydre e, som vil blive brugt igen.
}

Hvis du ønsker at kunne tilgå dem begge samtidig, så skal du bare sørge for at de har forskellige navne fx noget ukreativt som e1 og e2, haha, men du kan nok finde på noget bedre. :)

Håber det giver mening!
Avatar billede tvilling53 Seniormester
27. september 2021 - 17:46 #2
Hej
jeg har nu gennemgået projektet tegn for tegn og har så fundet 2 fejl som har været afgørende, den ene var .setIDAttribute som skulle være .setAttribute og så den 2. var reader.readAsDataUrl(e.files[0]); som skulle være reader.readAsDataURL(e.files[0]);.
Jeg takker for indsatsen.
VH Thomas V
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

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