Avatar billede mikze Nybegynder
18. september 2005 - 13:47 Der er 13 kommentarer og
1 løsning

Billedevisning i javascript

Hej, jeg vil godt vide hvordan jeg kalder en variabel fra en ekstern fil ( beskrivelser.js ).

I beskrivelser.js ligger følgende:

  beskrivelse1 = 'Leon og kone sidder ved bordet og nyder kaffen';
  beskrivelse2 = 'Julemanden kommer ind';
  beskrivelse3 = 'Så skal der festes!';


Jeg har så lavet en <script language="javascript" type="text/javascript" src="beskrivelser.js">


Derefter vil jeg kunne kalde dem frem, fx med alert eller med document.write, men den skal hente dem via en variabel i det pågældende dokument:

<script type="text/javascript">
tal = 2;

document.write(beskrivelse+tal);
alert(beskrivelse+tal);

</script>



Altså den skal hente beskrivelse2  ud fra >> tal << som skal kunne ændres.
Avatar billede olebole Juniormester
18. september 2005 - 14:58 #1
<ole>

Prøv:
  alert(window["beskrivelse"+tal])

/mvh
</bole>
Avatar billede olebole Juniormester
18. september 2005 - 14:59 #2
- men elegant er det ikke. Dette er nok noget mere elegant:

  beskrivelse = new Array();
  beskrivelse[0] = 'Leon og kone sidder ved bordet og nyder kaffen';
  beskrivelse[1] = 'Julemanden kommer ind';
  beskrivelse[2] = 'Så skal der festes!';

alert(beskrivelse[tal])
Avatar billede olebole Juniormester
18. september 2005 - 15:01 #3
:)
Avatar billede mikze Nybegynder
18. september 2005 - 15:19 #4
Lige det jeg manglede :-)
Avatar billede mikze Nybegynder
18. september 2005 - 15:43 #5
Hvorfor kan jeg ikke bruge æøå i min beskrivelse[2] ? eller i nogle af de andre?
Avatar billede olebole Juniormester
18. september 2005 - 15:45 #6
Jamen, det var da godt ... og tak for points  :)

Lad mig lige forklare det første eksempel, som nok ikke ved første øjekast virker helt logisk:

Alle variabler i et dokument ligger som properties på window-objektet. Det vil sige at variablen:
  var gnu = "Sjovt dyr";

- også kan findes med udtrykket:
  alert( window.gnu );

Når så vi skal til at gøre property-navnet dynamisk (sammensat af en fast streng og et variabelt tal), er vi nødt til at ty til array-notation i stedet:
  window["fastStreng" + variabeltTal];

Læs evt. min artikel om arrays - der bl.a. fortæller om sammenhængen mellem associative arrays og objekter i java script:
  http://www.eksperten.dk/artikler/227
- det kan bruges til meget godt  ;o)
Avatar billede olebole Juniormester
18. september 2005 - 15:56 #7
Det kommer anpå flere ting. I udgangspunktet bør man faktisk bruge f.eks. den escapede oktal-værdi af tegnets keyCode:
  http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Literals#String_Literals

Det vil sige, du kan skrive:
  alert(\305l, \346g og \370l);

'Å' => '\305'
'æ' => '\346'
'ø' => '370'

Dette giver nu ikke problemer hos mig:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<script type="text/JavaScript">
    var beskrivelse = new Array();
    var tal = 2;
    beskrivelse[0] = 'Leon og kone sidder ved bordet og nyder kaffen';
    beskrivelse[1] = 'Julemanden kommer ind';
    beskrivelse[2] = 'Så skal der festes med ål, æg og læssevis af øl!';
   
    alert( beskrivelse[tal] );
</script>
</head>
<body>



</body>
</html>
Avatar billede olebole Juniormester
18. september 2005 - 15:58 #8
- baaahhh ... der skulle naturligvis være gåseøjne om strengen:
  alert( "\305l, \346g og \370l" );
Avatar billede mikze Nybegynder
18. september 2005 - 16:02 #9
Prøv at lægge dine beskrivelser i et ekstern dokument ;)
Avatar billede mikze Nybegynder
18. september 2005 - 16:03 #10
iøvrigt virker &oslash; &aring; og så den der for Æ  :-)
Avatar billede olebole Juniormester
18. september 2005 - 16:14 #11
Sålænge, jeg tester lokalt, er der ingen forskel  :)
Hedder din script-fil '.js' - eller f.eks. '.php'?

- og nej, du kan ikke bruge HTML-entities  :)
Avatar billede olebole Juniormester
18. september 2005 - 16:17 #12
Det lyder lidt som sært dokument, du har gang i ... prøv at lægge et link til et eksempel  :)
Avatar billede mikze Nybegynder
18. september 2005 - 16:23 #13
Avatar billede olebole Juniormester
18. september 2005 - 16:30 #14
Prøv at gøre det til HTML-dokumenter  ;o)

Prøv at indsætte en DTD (DocType Definition) og angiv tegnsættet, som jeg har gjort i mit dokument. Så vil jeg tro, det virker  :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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