08. april 2002 - 12:05Der er
3 kommentarer og 1 løsning
Globale variabler i Javascript
Jeg er total nybegynder når det gælder JS, men et enkelt spørgsmål :
Når man definerer en global variabel i JS, vil denne variabel så kunne bruges på flere "sider", eller vil det kun være på den side hvor variablen er definert, at den kan bruges?
Det er ikke noget begreb 'global' i Javascript. Det nærmeste vi commer er core variable og funktioner, det vil sige predefinerede værdier og funktioner der kan tilgås nårsomhelst allevegne fra.
escape() og unescape() er fc core funktioner. Math objektet ligger også i core.
men vi kan ikke ændre nogetsomhelst i core. alle variable og funktioner vi definerer bliver defineret i et eller andet objekt. Som oftest window-objektet for den side koden står på.
i et frameset og når der er popops er der så flere window-objekter og man må adressere sig frem imellem dem
parent. foran en variabel fortæller at variablen ligger i framesetfilen for denne ramme.
opener. foran en variabel fortæller den ligger i den side der åbnede denne popop
parent.olsen. foran fortæller den ligger i en ramme ved navn 'olsen' i samme frameset.
det kan blive pænt kompliceret
top.opener.parent.venstre.foroven.antalHits = 5; giver værdien 5 til "variablen antalHits der ligger i en ramme ved navn 'foroven' hvis frameset ligger i en ramme ved navn 'venstre' som er naboramme til den side der åbnede denne popop som jeg er en underramme af."
Tungen lige i munden.
Derudover kan du også definere variable i allemulige lokale objekter i vinduet. document.forms['olsen'].elements['antal'].defailtVerdi = 5 giver værdien 5 til en variabel der hedder 'defaultVærdi' i et feltobjekt der hedder 'antal' i et formobjekt der hedder 'olsen' i denne rammes dokumentobjekt.
Undskyld jeg ikke har svaret før, nogen gang bliver mails væk så jeg ikke opdager der er skrevet i et af de spørgsmåj jeg har svaret på.
Det kan være su skal sætte variablen t så den peger på det windue de to funktioner er defineret i: var t = parent.rammehvordenjsfilligger; så er t en pegepind til den rammes windueobjekt og du kan starte funktionerne ved at skrive t. foran navnet
Men det mest sandsynlige er nok at der er noget kode i den .js fil der selv sørger for at t bliver sat. Står ordet 'onload' et sted i .js filen eller er der en onload handler i <body kommandoen der kalder en funktion i .js filen ?
mvh JakobA
Synes godt om
Ny brugerNybegynder
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.