/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Validering
Fra : Chuke Mimergolf


Dato : 29-11-02 09:03

Hej,

Jeg har problemer med at få denne linje, i et javascript, valideret:

document.write ('<a href="javascript:Gave();"><IMG
SRC="../../grafik/knapper/gave.gif" border="0" alt="Ugens gave"></a>');

Fejlbeskrivelse: end tag for element "A" which is not open
Det er altså det sidste </A>, der er problemet - men hvorfor?

På forhånd tak,
Peter



 
 
Kenneth Kristensen (29-11-2002)
Kommentar
Fra : Kenneth Kristensen


Dato : 29-11-02 10:01

Chuke Mimergolf wrote:

> Fejlbeskrivelse: end tag for element "A" which is not open
> Det er altså det sidste </A>, der er problemet - men hvorfor?

Sæt en backslash foran slash, sådan: <\/a>
Det løste problemet for mig for en 14 dage siden.

--
/kenne
C makes it easy to shoot yourself in the foot.
C++ makes it harder, but when you do, it blows away your whole leg.

Lasse Reichstein Nie~ (29-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 29-11-02 11:38

Kenneth Kristensen <kenne@control.auc.dk> writes:

> Chuke Mimergolf wrote:
>
> > Fejlbeskrivelse: end tag for element "A" which is not open
> > Det er altså det sidste </A>, der er problemet - men hvorfor?
>
> Sæt en backslash foran slash, sådan: <\/a>
> Det løste problemet for mig for en 14 dage siden.

Det kan sagtens være det. Det afhænger jo nok af hvilke omgivelser
scriptet står i, men det er formodentlig et script-tag.

Indholdet af et script-tag er CDATA, og det slutter ved det første
end-tag "</" efter <script>. Derfor virker det at skrive "<\/", der
af javascript-fortolkeren blive lavet til "</", men som ikke ordret
er "</" for HTML-fortolkeren.

Se iøvrigt:
<URL:http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#notes-specifying-data>
De giver netop dette forslag til at løse problemet.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Chuke Mimergolf (29-11-2002)
Kommentar
Fra : Chuke Mimergolf


Dato : 29-11-02 16:01

"Kenneth Kristensen" <kenne@control.auc.dk> skrev

> Sæt en backslash foran slash, sådan: <\/a>
> Det løste problemet for mig for en 14 dage siden.

Tusind tak, Kenneth (og Lasse og Niels)

At indsætte en \ foran foran / var lige hvad der skulle til
Så blev jeg så meget klogere, og min HTML-kode blev valideret.

mvh
Peter



Niels Andersen (29-11-2002)
Kommentar
Fra : Niels Andersen


Dato : 29-11-02 11:07

Chuke Mimergolf wrote in <as7707$1ks$1@sunsite.dk>:
> document.write ('<a href="javascript:Gave();"><IMG
> SRC="../../grafik/knapper/gave.gif" border="0" alt="Ugens gave"></a>');
>
> Fejlbeskrivelse: end tag for element "A" which is not open
> Det er altså det sidste </A>, der er problemet - men hvorfor?

Fejl i validatoren. Det forhindrer ikke din side i at overholde
HTML-standarden. :)

Kenneth har foreslået en workdaround. Jeg ved ikke om man kan stole på at
javascript vil ignorere backslash ved en escaped slash. Jeg ville nok gøre
sådan her:

document.write ('<a href="javascript:Gave();"><IMG
SRC="../../grafik/knapper/gave.gif" border="0" alt="Ugens gave"><'.'/a>');

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Lasse Reichstein Nie~ (29-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 29-11-02 12:02

Niels Andersen <niels-usenet@myplace.dk> writes:

> Fejl i validatoren. Det forhindrer ikke din side i at overholde
> HTML-standarden. :)

Jo, faktisk. Validatoren har ret.

> Kenneth har foreslået en workdaround. Jeg ved ikke om man kan stole på at
> javascript vil ignorere backslash ved en escaped slash.

Det er skam W3C's anbefalede workaround. Den er god nok ifølge
ECMAScript-specifikationen.
(<URL:ftp://ftp.ecma.ch/ecma-st/Ecma-262.pdf>)
I grammatikken for string literals (side 19) kan en SingelStringCharacter
være backslash efterfulgt af en NonEscapeCharacter, og betydningen af
"\/" er det samme som "/".

> Jeg ville nok gøre sådan her:
>
> document.write ('<a href="javascript:Gave();"><IMG
> SRC="../../grafik/knapper/gave.gif" border="0" alt="Ugens gave"><'.'/a>');

Jeg tror du mener + istedet for . som strengkonkatenering. Perl-inficieret? :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Niels Andersen (29-11-2002)
Kommentar
Fra : Niels Andersen


Dato : 29-11-02 12:06

Lasse Reichstein Nielsen wrote in <bs48hc5d.fsf@hotpop.com>:
>> Fejl i validatoren. Det forhindrer ikke din side i at overholde
>> HTML-standarden. :)
> Jo, faktisk. Validatoren har ret.

Yep, det gik op for mig da jeg læste et andet indlæg i denne tråd. Det er
mig, der huskede forkert.

>> Kenneth har foreslået en workdaround. Jeg ved ikke om man kan stole på at
>> javascript vil ignorere backslash ved en escaped slash.
> Det er skam W3C's anbefalede workaround. Den er god nok ifølge
> ECMAScript-specifikationen.

Men overholder browserne det? Det tror jeg nok, men jeg vil ikke garantere
det.

>> Jeg ville nok gøre sådan her:
>> document.write ('<a href="javascript:Gave();"><IMG
>> SRC="../../grafik/knapper/gave.gif" border="0" alt="Ugens
>> gave"><'.'/a>');
> Jeg tror du mener + istedet for . som strengkonkatenering.

Yep. :)

> Perl-inficieret? :)

PHP. :)

--
Mvh.

Niels Andersen
(la nels. anersyn.)

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

Månedens bedste
Årets bedste
Sidste års bedste