DTD Probleem

Plaats reactie
Gebruikersavatar
The_Borg
Elite Poster
Elite Poster
Berichten: 1759
Lid geworden op: 22 dec 2003, 20:25

//******************************************
//DTD KIEZEN
//******************************************
function DTDselecteren()
{
switch(window.document.getElementById("keuzelijst").value)
{
case "strict":
inhoudtekstkeuzelijst='<?xml version ="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://w3.org/1999/TR/xhtml1-strict.dtd"><html xmlns = "http://www.w3.org/1999/xhtml">';
break;
case "transitional":
inhoudtekstkeuzelijst='<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">';
break;
case "frameset":
inhoudtekstkeuzelijst='<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"><html xmlns="http://www.w3.org/1999/xhtml">';
break;
}
}
//*******************************************
//EINDE DTD KIEZEN
//*******************************************


Voor een schoolproject heb ik een nogal complex javascript geschreven waarvan deze functie als enige een fout geeft in de officiële validator van het w3c. Normaal zou een javascript al geen fout mogen geven omdat het in x-HTML Strict 1.0 tussen commentaar tags staat maar toch doet het dit.

De functie wordt geladen na het veranderen van een keuzelijstje. In dit keuzelijstje moet je tussen de 3 verschillende x-HTML DTDs kiezen. Deze worden later gebruikt om dynamisch een pagina aan te maken in javascript met de gekozen DTD.

Als fout krijg ik:

This is an unexpected token. The expected token is 'WHITESPACE'. Line 2, position 57.


De fout slaagt op de Strict DTD die gekozen wordt in de eerste case. Aangezien ook mijn document in de strict staat, denk ik dus niet dat dit toeval is. De validator werwart klaarblijkelijk de echte DTD met de DTD in de case die als string geladen wordt. Delete de eerste case en de fout verdwijnt.

Kan iemand mij met dit specialistisch probleempje helpen? De fout zou er maandag ten laatste moeten uit zijn aangezien dit werk dan ingediend moet worden. Dank aan alle probeerders!
"We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile."
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Euh... volgens mij is dit een fout in de validator ...
Je zou via server-side scripting de validator kunnen foolen, maar dat is niet de bedoeling neem ik aan ...
Gebruikersavatar
The_Borg
Elite Poster
Elite Poster
Berichten: 1759
Lid geworden op: 22 dec 2003, 20:25

Nope, de site is echt gemaakt om compleet clientside te werken. We mogen wel serverside gebruiken, alleen ken ik nog geen php/asp.
"We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile."
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

een beetje PHP:

Code: Selecteer alles

<? if (gethostbyaddr($_SERVER['REMOTE_ADDR']) != "lovejoy.w3.org") { ?>
[uw code die problemen geeft in de validator]
<? } ?>

Hiermee 'verberg' je dat stuk uit je pagina indien het via de validator gaat.
Foetelen noemen ze dat :P
ubremoved_983
Elite Poster
Elite Poster
Berichten: 3868
Lid geworden op: 20 maa 2004, 20:10
Uitgedeelde bedankjes: 95 keer
Bedankt: 48 keer

tprobleem is dat em nie mag foefelen eh ;) ... mja zo kunde alle niet valid code gaan omzeilen (met javascript eventueel) ;)

@ The Borg ik zou het niet weten :)
Gebruikersavatar
The_Borg
Elite Poster
Elite Poster
Berichten: 1759
Lid geworden op: 22 dec 2003, 20:25

Ja, problem solved. Ik heb dat speciaal in een extern scriptje gezet en dan zaagt hij er niet meer over. Dit moet echt wel nen bug zijn in de w3c recommandatie ofwel een bug in de validator zelf. Hij denkt namelijk dat hij 2 maal dezelfde dtd leest. Maar deze staan in commentaar dus mag hij die normaal al niet lezen. Al wreed bedankt Meon en DitCh.
"We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile."
Plaats reactie

Terug naar “Development”