Pagina 1 van 1

DTD Probleem

Geplaatst: 29 mei 2004, 23:41
door The_Borg
//******************************************
//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!

Geplaatst: 30 mei 2004, 00:20
door meon
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 ...

Geplaatst: 30 mei 2004, 10:21
door The_Borg
Nope, de site is echt gemaakt om compleet clientside te werken. We mogen wel serverside gebruiken, alleen ken ik nog geen php/asp.

Geplaatst: 30 mei 2004, 12:35
door meon
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

Geplaatst: 30 mei 2004, 13:55
door ubremoved_983
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 :)

Geplaatst: 30 mei 2004, 16:26
door The_Borg
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.