Avatar billede dotcom1 Nybegynder
30. januar 2012 - 13:57 Der er 6 kommentarer og
1 løsning

Alternativ til document.write?

Hej.

Jeg har dette script, som egentlig virker fint:

function getID(){
    var str =  window.location.href.split('&');
    var billede = '';
    var caption = '';
 
if (str[1] == "31803"){
    billede = '/files/billed1.jpg'
    caption = 'caption text'
}
else if (str[1] == "31804"){
    billede = '/files/billed2.jpg'
    caption = 'caption text'
}
document.write('<img src='+billede+' alt="" /><div id="caption">'+caption+'</div>')

}

Funktionen kaldes sådan:

<div id="image">
<script type="text/javascript">getID()</script>
</div>

- men jeg har læst at

document.write

ikke er god stil. Hvad er alternativet for mig?

Mvh.
Avatar billede jokkejensen Novice
30. januar 2012 - 14:19 #1
Du skal bruge et DOM object du vha appendChild() metoden tilføjer til #image

ex:

    var newimg=document.createElement('img');
    newimg.src=billede;
    newimg.alt=caption
    document.getElementById("image").appendChild(newimg);


/J
Avatar billede jokkejensen Novice
30. januar 2012 - 14:30 #2
og så skal scriptet køres efter <div id="image"> er lukket :)

<div id="image">
</div>
<script type="text/javascript">
function getID(){
    var str =  window.location.href.split('&');
    var billede = '';
    var caption = '';
 
if (str[1] == "31803"){
    billede = '/files/billed1.jpg'
    caption = 'caption text'
}
else if (str[1] == "31804"){
    billede = '/files/billed2.jpg'
    caption = 'caption text'
}
var newimg=document.createElement('img');
    newimg.src=billede;
    newimg.alt=caption
    document.getElementById("image").appendChild(newimg);

</script>
Avatar billede dotcom1 Nybegynder
31. januar 2012 - 09:33 #3
Ok, takker for hjælpen. Læg bare et svar.

Mvh.
Avatar billede dotcom1 Nybegynder
31. januar 2012 - 09:59 #4
Forresten, jeg har indtil nu haft mit script i en ekstern .js fil, men med ovenstående løsning ligger det i html-dokumentet. (I virkeligheden er scriptet en hel del længere end i mit eksempel, så jeg ville helst undgå at det skulle ligge sammen med html'en.) Er der en mulighed for stadig at kunne beholde scriptet i en ekstern fil og loade det efter at efter <div id="image"> er lukket?
Avatar billede dotcom1 Nybegynder
31. januar 2012 - 12:43 #5
Ah selvfølgelig, bare sådan:

<div id="image"></div>
<script type="text/javascript">getID()</script>


:-)
Avatar billede jokkejensen Novice
31. januar 2012 - 12:48 #6
Præcis :)
Avatar billede jokkejensen Novice
31. januar 2012 - 12:48 #7
du kan evt også droppe den <script> blokke og sige

<body onload="getID()">

/J
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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Senior Test Manager

Cognizant Technology Solutions Denmark ApS

Sr. Test Analyst

Intempus

iOS developer