/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
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?


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste