/ 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
Javascript funktion
Fra : Kristian Skriver Jen~


Dato : 05-06-04 19:53

Hejsa,

Jeg har lidt problemer med at få fat i de argumenter jeg bruger i min
funktion:

<script language="javascript">
function mover(name, img){
document.name.src = img;
}
</script>
<body>
<img src="menu1off.gif" name="menu1" onmouseover='mover
("menu1","menu1on.gif")'>

</body>


Her var det tanken at javascriptet skulle få navnet på img'en og sætte en
ny source på, men jeg får en fejl, fordi den ikke forstå at name er
argumentet...

Kan nogen hjælpe?

Kristian Jensen

 
 
Johan Holst Nielsen (05-06-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 05-06-04 21:43

Kristian Skriver Jensen wrote:
> <script language="javascript">
> function mover(name, img){
> document.name.src = img;
> }
> </script>
> <body>
> <img src="menu1off.gif" name="menu1" onmouseover='mover
> ("menu1","menu1on.gif")'>
>
> </body>
>
>
> Her var det tanken at javascriptet skulle få navnet på img'en og sætte en
> ny source på, men jeg får en fejl, fordi den ikke forstå at name er
> argumentet...

Jah - det er fordi du skal lave noget eval for at det virker

Prøv at lave din funktion om til

function mover(name,img) {
eval("document."+name+".src='"+img+"'");
}

mvh
Johan

Kristian Skriver Jen~ (05-06-2004)
Kommentar
Fra : Kristian Skriver Jen~


Dato : 05-06-04 22:44

Johan Holst Nielsen <__spam__@phpgeek.dk> wrote in
news:c9tb82$2osu$1@news.cybercity.dk:

> Kristian Skriver Jensen wrote:
>> <script language="javascript">
>> function mover(name, img){
>> document.name.src = img;
>> }
>> </script>
>> <body>
>> <img src="menu1off.gif" name="menu1" onmouseover='mover
>> ("menu1","menu1on.gif")'>
>>
>> </body>
>>
>>
>> Her var det tanken at javascriptet skulle få navnet på img'en og
>> sætte en ny source på, men jeg får en fejl, fordi den ikke forstå at
>> name er argumentet...
>
> Jah - det er fordi du skal lave noget eval for at det virker
>
> Prøv at lave din funktion om til
>
> function mover(name,img) {
> eval("document."+name+".src='"+img+"'");
> }

Det virker jo helt fantastisk

Kan du evt. fortælle mig hvorfor?

Johan Holst Nielsen (05-06-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 05-06-04 23:10

Kristian Skriver Jensen wrote:
> Johan Holst Nielsen <__spam__@phpgeek.dk> wrote in
>>>Her var det tanken at javascriptet skulle få navnet på img'en og
>>>sætte en ny source på, men jeg får en fejl, fordi den ikke forstå at
>>>name er argumentet...
>>
>>Jah - det er fordi du skal lave noget eval for at det virker
>>
>>Prøv at lave din funktion om til
>>
>>function mover(name,img) {
>> eval("document."+name+".src='"+img+"'");
>>}
>
> Det virker jo helt fantastisk
>
> Kan du evt. fortælle mig hvorfor?


Jah... er måske lidt svært at forklare...
Det du gør med eval er at du først ekskverer en string efter den er
bygget op.

Forstil dig du har:



<img src="whatever.foo" name="billede">
<img src="whatever.bar" name="etellerandet">

Du har nu din gamle funktion -

function mover(billede, img) {
document.billede.src = img;
}

du kalder den med
mover('etellerandet','whatever.baz');

Skal den nu hente den nu ændre billede eller etellerandet?
Derfor skal du ind og have eval - da den ellers vil hente fra billede :)


Kan ikke lige forklare det med andre ord - måske er det på grund af
stadig en vis indvirkning af gårdagens mængde af alkohol - måske blot på
grund af det er ved at være lidt sent ;)

mvh
Johan

Lasse Reichstein Nie~ (06-06-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 06-06-04 16:13

Johan Holst Nielsen <__spam__@phpgeek.dk> writes:

>> <img src="menu1off.gif" name="menu1" onmouseover='mover
>> ("menu1","menu1on.gif")'>

> Prøv at lave din funktion om til
>
> function mover(name,img) {
> eval("document."+name+".src='"+img+"'");
> }

Helst ikke. Det er aldrig nødvendigt at bruge "eval" til at tilgå
en object-egenskab, og i næsten alle tilfælde er der alternativer til
"eval" der er både mere effektive og sikrere. Så, brug aldrig "eval".

Prøv

function mover(name,img) {
document.images[name].src=img;
}

Metoden der bruger "eval" fejler fx hvis navnet på billedet ikke er
et lovligt variabelnavn. Eksempel:

<img name="mit billede" src="...">

Det er dog, i de seneste versioner af HTML, anbefalet af bruge
"id"-attributten i stedet for "name"-attributten. I en "id" er
det ikke lovligt at have mellemrum.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste