Avatar billede Slettet bruger
26. juni 2003 - 10:11 Der er 46 kommentarer og
1 løsning

W3C's HTML Validator brokker sig over mit JavaScript

I går konverterede jeg alle mine HTML-koder på www.phoenixv.dk, der før var 4.01 Transitional, til XHTML 1.1 og mit CSS til korrekt CSS2.
W3C's HTML Validator ser sig dog stadig sur på et par af mine sider, fx:
www.phoenixv.dk/links.html

Se validatorens svar her:
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.phoenixv.dk%2Flinks.html&charset=%28detect+automatically%29&doctype=%28detect+automatically%29&ss=1&sp=1&verbose=1

Line 91, column 19: character "&" is the first character of a delimiter but occurred as data
Line 91, column 20: character "&" is the first character of a delimiter but occurred as data

Linje 91 i min kode er midt i et JavaScript, og dér er det jo korrekt nok at skrive &&. Hvis jeg i øvrigt tager scriptet ud, validerer siden inkl. CSS helt korrekt.

Så hvad gør jeg for at løse problemet med det logiske "og"?
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 10:15 #1
Du skal nok have
  <script ...>
  <!--

    //-->
  </script>
Avatar billede Slettet bruger
26. juni 2003 - 10:15 #2
Det er vel kun for at forhindre ældre browsere i ikke at vise scriptet som HTML-kode. Det løser problemet, men kan umuligt være korrekt?
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 10:17 #3
Så kan du betragte validatoren som en ældre browser....

Det er fuldt "lovligt" ;)
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 10:18 #4
Men virker det ikke uden nu. Jeg prøvede lige dit link
Avatar billede Slettet bruger
26. juni 2003 - 10:19 #5
Ja, men ikke en standard, hvilket jo er hele idéen med at gå efter XHTML 1.1.
<!-- og //--> er jo bare nogle gamle hacks fra generation 4-tiden.
Avatar billede Slettet bruger
26. juni 2003 - 10:20 #6
Den validerer korrekt uden. Men CSS'en nægter at blive valideret, pga. &&.
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 10:20 #7
Nej jeg så forkert. Der stod det var "valid" - jeg overså kommentaren.
Der er 2 muligheder:
  1) Javascript er ikke en den af XHTML1.1
  2) Der er en fejl i validatoren

vælg selv ;)
Avatar billede Slettet bruger
26. juni 2003 - 10:22 #8
Eller også skal man tilføje noget med entity osv.
Men det valideres jo korrekt med <!-- og //-->... Så det må jeg "tage til takke med" foreløbig. Håber dog stadig, der er én, som kan komme med en smartere løsning. :)
Avatar billede erikjacobsen Ekspert
26. juni 2003 - 10:24 #9
Du kan bare lade spørgsmålet stå. Jeg frafalder point for mit "hack" ... ;)
Avatar billede arne_v Ekspert
26. juni 2003 - 10:25 #10
Har du prøvet:
  if (foer != null &amp;&amp; foer != obj) {
?
Avatar billede =maddog= Nybegynder
26. juni 2003 - 10:26 #11
alternativt burde du kunne escape som CDATA på xml manér
<script .. >
//<![CDATA[

//]]>
</script>
Avatar billede hoejrup Nybegynder
26. juni 2003 - 11:01 #12
xhtml 1.1 er ikke fuldt ud implementeret i de mest anvendte browsere på internettet, og derfor
bør du kun kode i xhtml 1.0.

/per
Avatar billede Slettet bruger
26. juni 2003 - 12:22 #13
hoejrup>> Det virker i hvert fald fint i IE6, NS7 og Opera7. Det skader ikke at følge de nyeste standarder, så længe man har øje for, om skidtet fungerer. :)
Avatar billede Slettet bruger
26. juni 2003 - 12:23 #14
arne_v>> JavaScript og HTML er vidt forskelligt. Så det virker desværre ikke.
Avatar billede Slettet bruger
26. juni 2003 - 12:25 #15
maddog>> Du ser ud til at have fat i noget. Det forklares nemlig også her:
http://www.w3schools.com/xml/xml_cdata.asp

Smid et svar, maddog og erikjakobsen.
Avatar billede arne_v Ekspert
26. juni 2003 - 12:27 #16
Jeg har heller ikke testet det.

Jeg ville formode, at de var blevet konverteret til rigtige &&
inden de nåede frem til JavaScript fortolkeren (de bør nemlig konverteres
af XML parseren).

Men det var kun en løs ide.
Avatar billede Slettet bruger
26. juni 2003 - 12:27 #17
Jep, se linket til validatoren. Det valideres helt som håbet med CDATA! :)
Avatar billede hoejrup Nybegynder
26. juni 2003 - 12:31 #18
phoenixv>Men det er hellere ikke de mest anvendte browsere på internettet.

/per
Avatar billede Slettet bruger
26. juni 2003 - 12:45 #19
hoejrup>> Det ser ellers sådan ud. :)
http://www.google.com/press/zeitgeist.html
Avatar billede Slettet bruger
26. juni 2003 - 12:46 #20
Men hvis der er en med IE5 eller IE5.5, der vil teste sitet, er vedkommende da mere end velkommen.
Avatar billede hoejrup Nybegynder
26. juni 2003 - 12:49 #21
55% anvender MSIE 6
38% anvender MSIE 5

/per
Avatar billede hoejrup Nybegynder
26. juni 2003 - 12:50 #22
xhtml1.1 virker ikke optimalt i IE 5!

/per
Avatar billede Slettet bruger
26. juni 2003 - 12:51 #23
Faktisk har jeg selv mulighed for ovenstående test.

hoejrup>> Det kommer an på, hvem du spørger. Efter min mening er Google's Zeitgeist det bedtse bud på en neutral undersøgelse.
Avatar billede Slettet bruger
26. juni 2003 - 12:52 #24
Til gengæld er XHTML det eneste, der virker, på visse håndholdte maskiner, da det kræver en meget simplere parser.
Avatar billede Slettet bruger
26. juni 2003 - 12:55 #25
Men nu tester jeg på IE5, og så må vi se. Hvis fejlene ikke er for fatale, fortsætter jeg stilen, W3C anbefaler.
Avatar billede hoejrup Nybegynder
26. juni 2003 - 12:58 #26
phoenixv> Ja, men jeg vil helst have at alle kan se et website uden problemer, og derfor
behøver du ikke altid at være først med den nyeste standard.
Du burde holde dig til xhtml 1.0.

Ja visse håndholdte PDA'er anvender xhtml 1.0 :-)

/per
Avatar billede Slettet bruger
26. juni 2003 - 13:02 #27
IE5 viser min side præcis som IE6, bortset fra at teksten i den lille boks nederst er lidt mindre. Derudover er der en lille uregelmæssighed ved "Forside"-punktet i menuen, men intet der på nogen måde springer i øjnene eller generer. Så XHTML 1.1 it is! :)

I øvrigt har den computer, jeg testede på, ikke internetadgang, så måske ville det blive vist helt perfekt, hvis den kunne downloade DTD'en.
Avatar billede Slettet bruger
26. juni 2003 - 13:04 #28
maddog & jakobclausen>> I bliver nødt til at smide et svar inden kl. 15-16 stykker, for ellers må jeg vente to uger.
Avatar billede hoejrup Nybegynder
26. juni 2003 - 13:09 #29
phoenixv>Ok, men det er så dit valg.

/per
Avatar billede Slettet bruger
26. juni 2003 - 14:30 #30
Jep, men det er vel også det fornuftigste, når jeg nu har påvist, at det virker i de browsere, som mere end 95% af internettets brugere benytter?
Avatar billede hoejrup Nybegynder
26. juni 2003 - 14:36 #31
phoenixv>Det har du hellere ikke! For den statistik kan du ikke bruge til noget.

/per
Avatar billede Slettet bruger
26. juni 2003 - 14:38 #32
?
Det virker i IE5+.
Det virker i NS6+.
Det virker i Opera7.

= mindst 95%.
Avatar billede Slettet bruger
26. juni 2003 - 14:39 #33
NS4 bruges næsten kun på biblioteker.
IE4 bruges kun af de forsvindende få, der ikke tør opdatere.
Opera-folket plejer at væøre hurtige til at opdatere til nyeste version.
Avatar billede Slettet bruger
26. juni 2003 - 14:50 #34
Så mangler vi kun Konqueror, Safari, etc., og dem stiler jeg ikke efter.
Avatar billede Slettet bruger
26. juni 2003 - 14:52 #35
Men jeg bliver nødt til at smutte nu. Jeg får først mulighed for at lukke spørgsmålet om et par uger, så hav lidt tålmodighed. :)
Og tak for hjælpen!
Avatar billede arne_v Ekspert
26. juni 2003 - 16:25 #36
hoejrup>

Umiddelbart virker den Google statistik rimelig overbevisende.
Avatar billede hoejrup Nybegynder
26. juni 2003 - 16:53 #37
arne_v>Google og andre former for statistik er skam seriøs nok, men de fleste har det med
at misbruge den. Og dette indlæg er et godt eksempel på en sådan situation.

Hvis det virker i 95% af tilfældene på en windows platform. Så har han
en chance for at 15% af brugerne ikke kan se websitet korrekt. :-)

/per
Avatar billede arne_v Ekspert
26. juni 2003 - 18:14 #38
Øh.

Du tager en statistik hvor browsere ikke er opdelt på platform og hvor
92% er på Windows platform og konkluderer at: 95% af windows brugere
er 85% af alle brugere.

Og du mener at andre bruger statistik forkert ?
Avatar billede hoejrup Nybegynder
26. juni 2003 - 20:33 #39
Han påstår at mindst 95% af brugerne kan se xhtml 1.1 i deres browser, og
det er misbrug at statistik så det basker! IE5 er ikke den samme software på
windows, som på de andre platforme. IE5 på en del andre platforme kan ikke
vise xhtml 1.1 korrekt, og derfor holder hans argumentation overhovedet ikke
vand.

/per
Avatar billede arne_v Ekspert
26. juni 2003 - 20:51 #40
Øh.

Så vidt jeg ved er IE kun tilgængeligt/brugt på Mac af ikke-Windows
platforme.

Der er 3% Mac.

Derfra kan man så trække dem der bruger NetScape 6, 7 eller Mozilla.

Så er vi under 3% - muligvis endda meget under 3% (jeg kender ikke
meget til hvilke browsere man bruger på Mac).

D.v.s. at fejlen p.g.a. af dette er rimelig lille.

Derimod er dine procenter åbenlyst forkerte i forhold til data.
Avatar billede =maddog= Nybegynder
26. juni 2003 - 21:12 #41
På opfordring smider jeg et svar.
CDATA escape fortæller browseren at denne blok er erklæret cdata og derfor ikke skal parses.
den "gamle" <!-- --> metode får browseren til at opfatte indholdet af scriptet som en kommentering (og derfor bliver det heller ikke parset).
I XML må man ikke bruge html kommenteringer, og derfor er det mest konsistente at bruge en cdata blok (hvis man altså ønsker at udnytte fordelen ved at kunne parse sin html side som xml - hvorfor ellers bruge xhtml...). Hvis man ønsker at minimere fejlvisning i gamle browsere kan man skrive
//<![CDATA[ <!--
... scriptet ...
// --> ]]>
hvilket vil give "//<![CDATA[]]>" som uønsket tekst i disse OLD-gamle browsere.
I XHTML 1.2 må man IKKE bruge HTML kommeteringer frit AFAIK.
Avatar billede Slettet bruger
12. juli 2003 - 19:09 #42
maddog>> Tak for uddybningen. Du får hermed point!

hoejrup>> Jeg er udmærket klar over, at browserstatistik ikke er noget, man skal læne sig for meget op ad. Til gengæld vil jeg have lov til at vurdere ud fra min målgruppe. Set i det perspektiv mener jeg stadigvæk, XHTML er bedste løsning, eftersom dette unægteligt ser ud til at være fremtidens formateringssprog på nettet.

arne_v>> Tak for forsvaret i mit fravær. :)
Avatar billede Slettet bruger
12. juli 2003 - 19:45 #43
maddog>> Det kan også lige tilføjes, at IE6 hører med under "gamle browsere" når vi snakker fejl ved brug af CDATA inden i script-tags. Derfor er det nødvendigt med kommenteringen.
Avatar billede hoejrup Nybegynder
12. juli 2003 - 20:16 #44
phoenixv>> Jeg tror at du blander tingene sammen, for jeg mener nemlig det er for tidligt
at kode i xhtml 1.1. Men der for kan du godt kode i xhtml 1.0, for det er nemlig fuldt ud
implementeret i de fleste browsere. Det er bare ikke tilfældet med xhtml 1.1 standarden.

/per
Avatar billede Slettet bruger
13. juli 2003 - 10:28 #45
hoejrup>> Tests har vist, at det XHTML 1.1, jeg bruger, fungerer upåklageligt i det, jeg vil betragte som min målgruppes browsere. I øvrigt er XHTML 1.1 jo meget lig XHTML 1.0 Strict.
Avatar billede hoejrup Nybegynder
13. juli 2003 - 10:33 #46
phoenixv>>Du ser alt for isoleret på xhtml 1.1 og xhtml 1.0 strict. For der findes nemlig noget funktionalitet i xhtml 1.1, der ikke findes i xhtml 1.0 strict.
Ellers var der ikke noget formål med at kalde det xhtml 1.1. Og jeg overværede faktisk en af eksperterne fra w3c. Der netop oplyste
at funktionaliteten fra xhtml 1.1 ikke var fuldt indbygget i browserne.

Men den smule xhtml 1.1 du anvender virker sikkert upåklageligt.

/per
Avatar billede Slettet bruger
13. juli 2003 - 10:45 #47
... og det er jo lige præcis det, det handler om!
Hele denne diskussion har jo drejet sig om mit site. Jeg argumenterer ikke for andet, end at hvis test viser, at funktionaliteten ikke nedsættes, og man samtidig overholder standarderne, bør man bruge den nyeste specifikation.
Hvis man kommer ud for at skulle bruge noget XHTML 1.1, der ikke er implementeret endnu, skal man selvfølgelig se tiden an og vente med at omskrive sin kode.
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