|
| Importere .js-fil vha. JavaScript Fra : Jonas Koch Bentzen |
Dato : 23-10-02 12:39 |
|
Er det muligt i en stump JavaScript-kode (f.eks. en funktion) at
importere en .js-fil? Jeg har prøvet med følgende, men det virker ikke:
script = document.createElement("script")
script.setAttribute("type", "text/javascript")
script.setAttribute("src", "test.js")
document.body.appendChild(script)
| |
Hintzmann (23-10-2002)
| Kommentar Fra : Hintzmann |
Dato : 23-10-02 13:28 |
|
"Jonas Koch Bentzen" <ingen.email@eksempel.dk> wrote in message
news:3DB68A4B.7060408@eksempel.dk...
> Er det muligt i en stump JavaScript-kode (f.eks. en funktion) at
> importere en .js-fil? Jeg har prøvet med følgende, men det virker ikke:
>
> script = document.createElement("script")
> script.setAttribute("type", "text/javascript")
> script.setAttribute("src", "test.js")
> document.body.appendChild(script)
Jep det er muligt.
Men du skal huske at appende scriptet til head elementet.
Læs mere på min side:
http://users.cybercity.dk/~dsl58854/articles/mhaRemoteServer/readme.html
Hintzmann
| |
Jonas Koch Bentzen (23-10-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 23-10-02 16:29 |
|
Hintzmann wrote:
> "Jonas Koch Bentzen" <ingen.email@eksempel.dk> wrote in message
> news:3DB68A4B.7060408@eksempel.dk...
>
>>Er det muligt i en stump JavaScript-kode (f.eks. en funktion) at
>>importere en .js-fil? Jeg har prøvet med følgende, men det virker ikke:
>>
>>script = document.createElement("script")
>>script.setAttribute("type", "text/javascript")
>>script.setAttribute("src", "test.js")
>>document.body.appendChild(script)
>
>
> Jep det er muligt.
>
> Men du skal huske at appende scriptet til head elementet.
>
> Læs mere på min side:
> http://users.cybercity.dk/~dsl58854/articles/mhaRemoteServer/readme.html
Tak for svaret - det ser meget interessant ud. Problemet er, at selvom
jeg godt kan bruge alert-bokse i .js-filen, så kan jeg ikke bruge
globale variabler eller funktioner (jeg får at vide, at de ikke er
defineret). Hvis jeg til gengæld laver en syntaksfejl i .js-filen, så
brokker Netscape 7's JavaScript-konsol sig, hvilket vil sige, at
..js-filen tydeligt bliver læst.
// Den her kommando bliver udført:
alert("Noget")
// Den her variabel vil ikke kunne bruges til
// noget i selve den side, der inkluderer .js-filen:
noget = "Hej"
| |
Hintzmann (23-10-2002)
| Kommentar Fra : Hintzmann |
Dato : 23-10-02 17:36 |
|
> Tak for svaret - det ser meget interessant ud. Problemet er, at selvom
> jeg godt kan bruge alert-bokse i .js-filen, så kan jeg ikke bruge
> globale variabler eller funktioner (jeg får at vide, at de ikke er
> defineret). Hvis jeg til gengæld laver en syntaksfejl i .js-filen, så
> brokker Netscape 7's JavaScript-konsol sig, hvilket vil sige, at
> .js-filen tydeligt bliver læst.
>
> // Den her kommando bliver udført:
> alert("Noget")
>
> // Den her variabel vil ikke kunne bruges til
> // noget i selve den side, der inkluderer .js-filen:
> noget = "Hej"
Prøv at skriv følgende i din inkuderet js-fil
//
var test = 'Dette er en test';
alertIt()
//
På siden der henter js-filen skal du så have følgende funktion
//
function alertIt() {
alert(test)
}
//
Det virker hos mig.
Hintzmann
| |
Jonas Koch Bentzen (23-10-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 23-10-02 17:47 |
|
Hintzmann wrote:
>
> Det virker hos mig.
Det viser sig nu, at problemet er, at jeg har følgende link, som i ét
hug henter filen og dernæst alerter variablen "ny" ud:
<a href='javascript:hent(); alert(ny)'>Klik</a>
I dét tilfælde vil variablen først kunne tilgås *efter*. Dvs., at man
skal gøre følgende for at få værdien af variablen:
<a href='javascript:hent()'>Klik</a>
<a href='javascript:alert(ny)'>Klik</a>
På den side, jeg skal bruge alt det her til, skal jeg have indlæst
..js-filen *og* bruge det array, der befinder sig deri, i ét hug (dvs.,
det hele skal køres onchange på en rullegardinmenu). Problemet er så
igen det, at variablerne i .js-filen tilsyneladende først er
tilgængelige efter at hele koden i onchange er udført. Har du en ide
til, hvordan man løser dén?
| |
Jonas Koch Bentzen (23-10-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 23-10-02 17:54 |
|
Jonas Koch Bentzen wrote:
>
> I dét tilfælde vil variablen først kunne tilgås *efter*.
Det er ikke tilfældet i IE, har jeg lige fundet ud af - men i Netscape 7
er det et problem.
| |
Hintzmann (23-10-2002)
| Kommentar Fra : Hintzmann |
Dato : 23-10-02 18:15 |
|
"Jonas Koch Bentzen" <ingen.email@eksempel.dk> skrev i en meddelelse
news:3DB6D2A1.5020909@eksempel.dk...
> Hintzmann wrote:
> >
> > Det virker hos mig.
>
> Det viser sig nu, at problemet er, at jeg har følgende link, som i ét
> hug henter filen og dernæst alerter variablen "ny" ud:
>
> <a href='javascript:hent(); alert(ny)'>Klik</a>
>
> I dét tilfælde vil variablen først kunne tilgås *efter*. Dvs., at man
> skal gøre følgende for at få værdien af variablen:
>
> <a href='javascript:hent()'>Klik</a>
> <a href='javascript:alert(ny)'>Klik</a>
>
> På den side, jeg skal bruge alt det her til, skal jeg have indlæst
> .js-filen *og* bruge det array, der befinder sig deri, i ét hug (dvs.,
> det hele skal køres onchange på en rullegardinmenu). Problemet er så
> igen det, at variablerne i .js-filen tilsyneladende først er
> tilgængelige efter at hele koden i onchange er udført. Har du en ide
> til, hvordan man løser dén?
Du skal huske at den henter js-filen asynkron, dvs. at der går et stykke tid
fra js-filen bliver forspurgt til den er genereret på serveren og returneret
tilbage til klienten.
Derfor skal den action du vil have der skal ske, stå i js-filen. som mit
eksempel med alertIt().
Hintzmann
| |
Jonas Koch Bentzen (23-10-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 23-10-02 19:42 |
|
Hintzmann wrote:
>
> Du skal huske at den henter js-filen asynkron, dvs. at der går et stykke tid
> fra js-filen bliver forspurgt til den er genereret på serveren og returneret
> tilbage til klienten.
>
> Derfor skal den action du vil have der skal ske, stå i js-filen. som mit
> eksempel med alertIt().
Det virker søreme! Tak for hjælpen.
| |
Jonas Koch Bentzen (23-10-2002)
| Kommentar Fra : Jonas Koch Bentzen |
Dato : 23-10-02 17:33 |
|
Hintzmann wrote:
> "Jonas Koch Bentzen" <ingen.email@eksempel.dk> wrote in message
> news:3DB68A4B.7060408@eksempel.dk...
>
>>Er det muligt i en stump JavaScript-kode (f.eks. en funktion) at
>>importere en .js-fil? Jeg har prøvet med følgende, men det virker ikke:
>>
>>script = document.createElement("script")
>>script.setAttribute("type", "text/javascript")
>>script.setAttribute("src", "test.js")
>>document.body.appendChild(script)
>
>
> Jep det er muligt.
>
> Men du skal huske at appende scriptet til head elementet.
Det er ikke nødvendigt, så vidt jeg kan se - man kan sætte noden hvor
man vil. Grunden til, at jeg ikke troede, ovenstående kode virkede, var,
at jeg fik en "[variabelnavnFraDenInkluderedeJsfil] er ikke defineret]"
- men den fejl får jeg også, hvis jeg putter .js-filen ind i <head>.
Så altså, kort fortalt kan man sætte .js-filen hvor man vil i
dokumentet, og man kan i .js-filen alerte noget ud - men de variabler og
funktioner, man sætter i .js-filen, er tilsyneladende ikke tilgængelige
inde i selve hovedsiden. Ved du, hvad man kan gøre ved det?
| |
|
|