Avatar billede imv29 Nybegynder
16. december 2003 - 16:57 Der er 36 kommentarer og
1 løsning

ændre i document.write?

hej
jeg er ret grøn i javascript, og vil derfor gene have noget hjælp.
jeg har 2 meget simple scripts der ser sådan ud.
Script1.js:
document.write("<img src='http://www.domainnavn.com'>");

Script2.js:
document.write("<img src='/images/13.gif'>");

det jeg gerne il er (evt gennem et 3. script) ar få den til at sætte doem samme så den sender :
<img src='http://www.domainname.com/images/13.gif'>

kan man det?
Avatar billede thesurfer Nybegynder
16. december 2003 - 17:04 #1
hvad med..
din hovedside:
var minsti = 'http://www.domainnavn.com';

script1.js:
document.write('<img src="' + minsti + '">');

script2.js:
document.write('<img src="' + minsti + '/images/13.gif">');

?
Avatar billede thesurfer Nybegynder
16. december 2003 - 17:05 #2
med hovedside mener jeg, den htm fil der læser script 1 & 2.
Så sætter du den op, sådan her:
<head>

<script type="text/JavaScript">
var minsti = 'http://www.domainnavn.com';
</script>

</head>
Avatar billede imv29 Nybegynder
16. december 2003 - 17:13 #3
>>surfer: ja ok , glemte lige at sige script2.js ændres dynamisk på ekstern serer. så 13.gif idag, er måske 27.gif imorgen.
så din ide er fin, har jeg tænkt på, men den skal så læse stien i script2 og skrive fjerne "<img src="  før jeg kan sætte den sammen med script1
Avatar billede thesurfer Nybegynder
16. december 2003 - 17:37 #4
Jeg kan ikke lige se hvordan det skal gøres.. har du et link til siden med billede, så vi kan se hvordan det er sat op?
Avatar billede mm12010 Nybegynder
16. december 2003 - 21:04 #5
var domaene = 'http://www.domainnavn.com';
var filsti = 'http://www.domainnavn.com';

document.write('<img src="'+domaene+'">');
document.write('<img src="'+filsti+'">');
document.write('<img src="'+domaene+''+filsti+'">');
Avatar billede thesurfer Nybegynder
16. december 2003 - 21:11 #6
mm12010> hvad laver du? :)
Så står der: <img src="http://www.domainnavn.comhttp://www.domainnavn.com">
Avatar billede mm12010 Nybegynder
16. december 2003 - 21:14 #7
sorry :-D

var domaene = 'http://www.domainnavn.com';
var filsti = '/images/13.gif';
Avatar billede thesurfer Nybegynder
16. december 2003 - 21:20 #8
mm12010> Læs lige indlæg 16/12-2003 17:13:49 :)
Avatar billede thesurfer Nybegynder
16. december 2003 - 21:20 #9
..by the way.. mit forslag virker også :)
Avatar billede imv29 Nybegynder
16. december 2003 - 21:44 #10
nej jeg kan jo ikke bruge "var filsti = '/images/13.gif';" da den jo ændres dynamisk i script2!
men ok, det er nok lettere at forklarer hvis i ser hvad det er jeg vil.
historien er indtil fornyli har jeg på min start side haft et billede fra dmi.dk liggende der viser dagens vejr(sol/sky/regn) men den bruger dmi.dk ikke mere så jeg var på jagt efter en ny. de fleste laver det serverside, så siden viser bare sol.gif ved godt vejr.  men dr.dk har den som javascript så den er dynamisk, fint problemet er bare at det kun er den lokale sti i scriptet (altså script2 i eksemplet)  derfor kan jeg ikke som i forslår bruge 
"var filsti = '/images/13.gif';"
Avatar billede thesurfer Nybegynder
16. december 2003 - 21:52 #11
Avatar billede imv29 Nybegynder
16. december 2003 - 21:52 #12
så spørgsmålet er kan man evt tage script2 "document.write("<img src='/image/13.gif'>");"
og lae den om til en strint var, og derefter fjerne de første 8tegn(img src=)for så kan man jo gøre som i siger
eller hvad
Avatar billede imv29 Nybegynder
16. december 2003 - 21:53 #13
>>nemlig his du ser på kilden er den lavet man et script der hedder
Avatar billede imv29 Nybegynder
16. december 2003 - 21:53 #14
hov
der hedder
document.write("<img src='/pubs/nyheder/html/nyheder/vejret/grafik/vejr_ikon/13.gif'>");
Avatar billede thesurfer Nybegynder
16. december 2003 - 22:00 #15
Jeg kan altså ikke se noget document.write(.../vej_ikon/...');
Jeg kan se:
            <img width="35" height="35" border="0" src="
http://www1.dr.dk/pubs/nyheder/html/nyheder/vejret/grafik/vejr_ikon/4.gif
">
Avatar billede imv29 Nybegynder
16. december 2003 - 22:57 #16
ok, se på kildekode på siden (http://www.dr.dk/nyheder/)  der er ikke nogen henvisning til billedet. istedet står der :
<script src='/pubs/nyheder/html/nyheder/vejret/dagensvejrikon.js'></script>
åbner du det script SÅ hår du document.write("<img src='/pubs/nyheder/html/nyheder/vejret/grafik/vejr_ikon/13.gif'>");
og derfor vises billedet.
så dette script ændres hvergang vejret ænders til at pege på http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/grafik/vejr_ikon/1.gif (til 22.gif)
men for at kunne køre dette script på min egen side skal den jo så have den fulde sti dvs "http://www1.dr.dk " foran stien
Avatar billede thesurfer Nybegynder
16. december 2003 - 23:09 #17
OK..

Jeg forestiller mig at det foregår sådan her:

Via en form (på nettet eller via program), skriver personen "det er skyet og blah blah blah.." og vælger ikon.
Formen gemmer så ikonet i filen dagensvejrikon.js.
Filen kan så bruges overalt.

Jeg forestiller mig at du fanger ikonet sådan her:

Du bruger f.eks. ASP (Active Server Pages) til at download filen dagensvejrikon.js. Du kan derefter splitte strengen, og finde ikonet.
Hvis du ikke allerede har en server der understøtter ASP, kan du gratis oprette en konto hos www.frip.dk
Vælger du denne løsning, skal du oprette et spm under ASP kategorien, for at stille spm angående den ASP kode man skal bruge.


Med andre ord: Jeg kan ikke lige se en JavaScript løsning på problemet.
Avatar billede roenving Novice
17. december 2003 - 08:17 #18
Men så kan du onload gøre:

<body onload="var l = document.links;l[25].href = l[24].href + l[25].href;">

-- og numrene skal så ændres, så de passer !-)
Avatar billede thesurfer Nybegynder
17. december 2003 - 16:06 #19
roenving> Interessant kode.. hvad gør det ? :)
Avatar billede thesurfer Nybegynder
17. december 2003 - 16:08 #20
mulig fortolkning..:

definer variablen l og sæt dens værdi til dokumentets links.
destinationen til link 25 er lig dest_link_nr_24 + dest_link_nr_25

korrekt?

Men hvad får man ud af det?
Avatar billede roenving Novice
17. december 2003 - 16:11 #21
At du får sat link-referencen i link 24 foran link-referencen foran i link-referencen i link 25 !-)
Avatar billede thesurfer Nybegynder
17. december 2003 - 16:15 #22
Måske er det bare mig der ikke har forstået det.. men, der er jo ikke tale om links.. men "img src"..?
Og hvordan passer det ind med, inkludering af script 1 + 2?
Avatar billede roenving Novice
17. december 2003 - 16:21 #23
Hrm ...

Det var bare alle de der blå links, jeg havde kigget på ned over siden, men man kan jo gøre det samme med img-src:

<body onload="var i = document.images;i[25].src = i[24].src + i[25].src;">
Avatar billede thesurfer Nybegynder
17. december 2003 - 16:25 #24
hmm.. har lige fået en skør ide..
man kunne jo have et skjult div eller span som indeholder inkluderingen af de 2 scripts. Billederen der er forkert ("/im..."), ses ikke.
Derefter kan man bruge din metode med det første billede og det andet billede, osv..

- Smutter lige engang.. er tilbage om ca 10 mins..
Avatar billede thesurfer Nybegynder
17. december 2003 - 17:07 #25
Hvad siger I til denne her?:

<!-- Dette span felt er skjult //-->
<span id="nope" style="display: none;">
<script type="text/Javascript" src="http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/dagensvejrikon.js"></script>
</span>

<!-- Dette billede placerer du hvor du vil //-->
<img src="" id="mypic">

<!-- selve scriptet SKAL stå efter mypic-billedet //-->
<script type="text/JavaScript">
var i = document.images;
var tmp = i[0].src.split("/");
var tmp2 = '';

for (i = 0; i <= tmp.length -1; i++) {
  if (tmp[i] != 'undefined') { tmp2 = tmp[i] }
}

document.images['mypic'].src = 'http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/grafik/vejr_ikon/' +  tmp2;
</script>


Jeg er sikker på at det kan optimeres :)
Avatar billede thesurfer Nybegynder
17. december 2003 - 17:08 #26
hmmm.. erstat:
  if (tmp[i] != 'undefined') { tmp2 = tmp[i] }

med:
  tmp2 = tmp[i]

det med "Undefined" var bare en test :)
Avatar billede thesurfer Nybegynder
17. december 2003 - 17:10 #27
man kan bare fjerne id="nope"-delen fra: <span id="nope" style="display: none;">
Avatar billede thesurfer Nybegynder
17. december 2003 - 17:20 #28
Ny udgave:

<!-- Dette span felt er skjult //-->
<span style="display: none;">
<script type="text/Javascript" src="http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/dagensvejrikon.js"></script>
</span>

<!-- Dette billede placerer du hvor du vil //-->
<img src="" id="mypic">

<!-- selve scriptet SKAL stå efter mypic-billedet //-->
<script type="text/JavaScript">
var tmp = document.images[0].src.substring(document.images[0].src.lastIndexOf("/") + 1);
document.images['mypic'].src = 'http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/grafik/vejr_ikon/' +  tmp;
</script>


Jeg fandt lige ud af at der er noget der hedder "lastIndexOf" :)
Avatar billede imv29 Nybegynder
17. december 2003 - 19:47 #29
smukt! den virker perfekt.
som javascript begynder, kunne det god være fedt hvis du lige gider forklare:

"var tmp = document.images[0].src.substring(document.images[0].src.lastIndexOf("/") + 1); "
smid et svar hvis du vil have points
Avatar billede thesurfer Nybegynder
17. december 2003 - 19:53 #30
Vi hakker den op i stumper, så er den nemmere at forklare:
document.images[0].src:
betyder "adressen på billede '0'"

document.images[0].src.lastIndexOf("/"):
betyder "det sidste '/' tegn i adressen til billede '0',
" + 1" betyder at den skal tage det næste tegn, altså skal det sidste "/" tegn ikke inkluderes.

Med andre ord:
i 'tmp' lægges indholdet, af adressen af billede '0', fra det sidste "/" tegn, plus 1 tegn.

Her er et svar, men roenving skal også have points..! :)
Uden hans hint, med document.images, ville jeg ikke være kommet frem til løsningen.
Avatar billede imv29 Nybegynder
17. december 2003 - 21:32 #31
ahh ok, så lastIndexOf("/") tager alt efter sidste /  og +1 betyder den tager det et tegn efter / ok!
^^ ja klart, roenving smider du lige et svar, alternativ må i gerne få 30points hver, så laver jeg bare et nyt spørgsmål
Avatar billede thesurfer Nybegynder
17. december 2003 - 21:34 #32
Du kan bare sætte points op, via avanceret funktionen i menuen til venstre :)
Avatar billede thesurfer Nybegynder
17. december 2003 - 22:29 #33
øh.. du har giver mig points? skulle vi ikke have ventet til roenving lagde et svar?

Jeg opretter bare et spm til roenving, og giver ham 30 points.
Avatar billede thesurfer Nybegynder
17. december 2003 - 22:31 #34
roenving> points til dig: http://www.eksperten.dk/spm/441245
Avatar billede roenving Novice
18. december 2003 - 08:28 #35
Velbekomme, imv29 !-)
Avatar billede imv29 Nybegynder
18. december 2003 - 10:41 #36
he, ok lidt pointsforvirring, men jeg kan se i nu har fået 30 begge to så er det på plads. så tak til jer begge, det var en positiv start på et nyt felt for mig.
Avatar billede roenving Novice
18. december 2003 - 10:56 #37
-- takker både dig og thesurfer ;~}
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