/ Forside/ Teknologi / Udvikling / DHTML / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
DHTML
#NavnPoint
molokyle 235
smilly 176
konsulent.. 160
natmaden 153
severino 100
benkvist 81
2mmy 68
arne.jako.. 66
emesen 48
10  doomie 36
Enkelte-/dobbelte anførselstegn ?
Fra : molokyle
Vist : 1323 gange
48 point
Dato : 07-08-04 10:36

Jeg sidder og roder med min 'nye' hjemmeside og må desværre indrømme jeg er blevet lidt rusten i de daglige rutiner
Hvordan er det nu lige man indlejre indskudte anførsels tegn ?

Hvis koden er denne :

<img src="BILLEDE1.gif" onmouseover="this.src='BILLEDE2.gif'" onmouseout="this.src='BILLEDE1.gif'"> ..og man vil have den liggende i en extern *.js fil for at kunne inkludere den, bruges document.write("..."); omkring DHTML koden.

Dette giver :

document.write("<img src="BILLEDE1.gif" onmouseover="this.src='BILLEDE2.gif'" onmouseout="this.src='BILLEDE1.gif'">"); Der selvfølgelig giver rod i anførselstegnene! Det er let nok at skaffe sig af med de 'interne' dobbelte anførselstegn = " ved at bruge enkelte i stedet = ', men hvad så med de enkelt anførselstegn = ' der stod i forvejen ???

</MOLOKYLE>


 
 
Accepteret svar
Fra : emesen

Modtaget 48 point
Dato : 07-08-04 12:26

Så vidt jeg husker skal de indlejrede være '...........'

Kommentar
Fra : molokyle


Dato : 07-08-04 12:39

emesen -> Nu læser du koden nærmere igennem og så sætte jeg '?' ved de steder jeg mener :

document.write("<img src='BILLEDE1.gif' onmouseover='this.src=?BILLEDE2.gi?' onmouseout='this.src=?BILLEDE1.gif?>");

..You see ???

</MOLOKYLE>



Kommentar
Fra : molokyle


Dato : 07-08-04 12:41

..en gang til

document.write("<img src='BILLEDE1.gif' onmouseover='this.src=?BILLEDE2.gif?' onmouseout='this.src=?BILLEDE1.gif?'>");

...altså : Hvad skal der stå ved spørgsmåls tegnene ?

</MOLOKYLE>

Kommentar
Fra : emesen


Dato : 07-08-04 13:02

document.write("<img src='BILLEDE1.gif' onmouseover="this.src='BILLEDE2.gif'" onmouseout="this.src='BILLEDE1.gif'">");
Men det virker ikke logisk

Kommentar
Fra : molokyle


Dato : 07-08-04 13:06

emesen -> Når parseren når det første " ved .write(".. finder den den næste ved onmouseover=".. og dén går ikke

</MOLOKYLE>

Kommentar
Fra : emesen


Dato : 07-08-04 13:09

Ja - men det var også bare noget jeg har læst en gang - måske var det VB6

Kommentar
Fra : molokyle


Dato : 07-08-04 13:15

emesen -> Sikkert !

</MOLOKYLE>

Kommentar
Fra : dk


Dato : 10-08-04 00:08



('img src='BILLEDE1.gif' onmouseover='this.src='BILLEDE2.gif' onmouseout='this.src='BILLEDE1.gif')">

Kommentar
Fra : molokyle


Dato : 10-08-04 00:21

dk -> Kandu.dk's kodevisning er stået af....!!! Tror jeg ...er det virkelig hvad du har skrevet ?

Kan du ikke lægge din løsning ved at bruge et blank-tegn (mellemrum) mellem hvert bogstav i koden ?

Dette ser nu ikke rigtigt ud : [ onmouseover='this.src='BILLEDE2.gif' onmouseout='this.src='BILLEDE1.gif' ]

Parseren må da tolke : 1. streng; 'this.src=' 2. streng; ' onmouseout=' 3. streng; 'BILLEDE1.gif' ..hvilket ikke giver mening.

</MOLOKYLE>


Kommentar
Fra : dk


Dato : 10-08-04 08:52

hmm.. jeg er ikke 100% sikker på om det er den rigtige kode, men måske....
jeg prøver lige igen, inden jeg "send indlæg" er første kode på 2 linier og 2, kode på 3 linier.......
men det hele skal stå på een linie................

<body bgcolor="#000000" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('img src='BILLEDE1.gif' onmouseover='this.src='BILLEDE2.gif' onmouseout='this.src='BILLEDE1.gif')">

det er her jeg har snuppet den fra

<body bgcolor="#000000" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('images/enter_deu_o_us.gif','images/enter_eng_o_us.gif','images/skip_eng_o_us.gif','images/skip_deu_o_us.gif','images/s3_o_us.gif','images/enter_o_us.gif','images/skip_o_us.gif')">



Kommentar
Fra : molokyle


Dato : 10-08-04 10:01

Dette ville i mit tilfælde give en include fil med indholdet:

<!--
document.write("<'img src='BILLEDE1.gif' onmouseover='this.src='BILLEDE2.gif' onmouseout='this.src='BILLEDE1.gif'>");
-->

Hvilket ikke giver fejl, men udskriver strengen :

<'img src='BILLEDE1.gif' onmouseover='this.src='BILLEDE2.gif' onmouseout='this.src='BILLEDE1.gif'>

..og det var ikke lige dét der var meningen !

Dette skyldes, hvis du tæller efter , der er 9 anførselstegn. Der bør kun være 8 (= 4 strenge). Fjernes det første (..og overskydende anførselsteg), står der :

<!--
document.write("<img src='BILLEDE1.gif' onmouseover='this.src='BILLEDE2.gif' onmouseout='this.src='BILLEDE1.gif'>");
-->

Hvilket er korrekt, men giver 2 enslydende fejl : Der er fundet en syntaxfejl når koden køres. (fejlende optræder i events'ene onmouseover og onmouseout og skyldes konstruktionen tolkes som : 1. streng; 'this.src=' 2. streng; ' onmouseout=' 3. streng; 'BILLEDE1.GIF')

Den nederste 3 liniers kode du angiver, er blot et simpelt funktionskald med 7 parametre. Der er i dette tilfælde ingen indlejrede anførselstegn mellem anførselstegn mellem anførselstegn og det er når dette optræder det går galt

Jeg har også prøver at fjerne 2 anførselstegn, så der står :

<!--
document.write("<img src='BILLEDE1.gif' onmouseover='this.src=BILLEDE2.gif' onmouseout='this.src=BILLEDE1.gif'>");
-->

Men her optræder fejlene : BILLEDE2 og BILLEDE1 er ikke defineret. (Dette skyldes at this.src forventer en streng (med anførselsteg omkring eller en variabel).

Jeg vil prøve om ikke jeg i *.js filen kan preloade billederne til 2 variabler (B1 og B2) og så give src og this.src denne variabel med kaldet : src=javascript:B1 this.src=javascript:B2 og this.src=javascript:B1. Så undgås det extra sæt anførselstegn. Dette vil yderligere give den fordel at billed henvisningerne bliver samlet i én fil og kan rettes derfra, da resten af koden skal bruges på flere sider.

</MOLOKYLE>






Kommentar
Fra : molokyle


Dato : 10-08-04 10:02

Hmm.. det sidste jeg skrev er noget sludder : Dette vil yderligere give den fordel at billed henvisningerne bliver samlet i én fil og kan rettes derfra, da resten af koden skal bruges på flere sider.

Det er jo netop dét jeg hele tiden har haft gang i

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 10-08-04 14:50

Jep, det var sådan den skulle skæres

..igen måtte jeg selv komme op med løsningen

Preload og variabelhenvisning :

Kode
<!--
B1 = new Image();
B2 = new Image();
B1.src = "BILLEDE1.GIF";
B2.src = "BILLEDE2.GIF";
document.write("<img src='BILLEDE1.GIF' onmouseover='this.src=B2.src' onmouseout='this.src=B1.src'>");
-->


</MOLOKYLE>

Godkendelse af svar
Fra : molokyle


Dato : 10-08-04 14:53

emesen -> Det første svar kan være lige så godt, som ethvert andet.

ALLE -> Tak fordi I gad prøve

</MOLOKYLE>
                        

Kommentar
Fra : emesen


Dato : 10-08-04 16:00

Det er utroligt som folk spilder tid på vores hjernevindinger, når de selv kan finde ud af det men bare ikke gider.


Kommentar
Fra : molokyle


Dato : 10-08-04 18:14

Livets kår emesen

Tænk; hvis lort var penge ?

..så blev man kun rigtig rig, hvis man kunne få andre til at skide for sig !!!

</MOLOKYLE>

Kommentar
Fra : emesen


Dato : 10-08-04 18:45

Men jeg ramte da lidt rigtigt, for der er ikke nogen " inde i " " , der er kun '...'


Kommentar
Fra : molokyle


Dato : 10-08-04 19:53

emesen -> Til gengæld er B1.src og B2.src referencer til strenge og er ikke selv streng værdier. Derfor kan et sæt indlejrede anførselstegn udelades (..de ligger implicit i referencen).
Svaret på mit oprindelige spørgsmål er stadig ikke fundet :

Citat
Anførselstegn i anførselstegn i anførselstegn.


..og her menes ikke escape tegn som f.eks : \' ..der blot tilføjer et 'anførselstegn' til strengen.

Ingen brugbare svar, men jeg fandt en om-/genvej

</MOLOKYLE>

Kommentar
Fra : emesen


Dato : 10-08-04 20:59

hmmmm - ok jeg gi'r mig

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409070
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste