[w3 validator] foutmelding voor correcte code ?

Pagina: 1
Acties:
  • 235 views sinds 30-01-2008
  • Reageer

  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 21:37
Ik kom er even niet helemaal niet uit, als ik mijn site laat valideren door de validator van het w3c geeft hij de volgende foutmeldingen
Line 11, column 6: end tag for element "HEAD" which is not open
</head>


Line 12, column 5: document type does not allow element "BODY" here
<body>


Line 58, column 7: end tag for element "P" which is not open
</p>
Nadat ik de code zelf had nagelopen en niet heb kunnen vinden wat er nu precies bedoelt word wend ik me maar tot GOT

Weet er iemand wat hier aan de hand is ? zie ik zelf iets over het hoofd of is het iets dat er fout steekt in de validator ? (het laatste lijkt me sterk)


w3 validator check


niet beginnen over tabellen vs css, ik heb er hier bewust voor gekozen gewoon bij tabellen te blijven

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

In HTML4 mag je een link-tag niet afsluiten, en een paragraph mag geen block-level elementen bevatten.

Intentionally left blank


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

crisp schreef op 28 augustus 2004 @ 19:08:
In HTML4 mag je een link-tag niet afsluiten, en een paragraph mag geen block-level elementen bevatten.
Ook niet met
code:
1
<link bla="bla"></link>


Daar zouden HTML4 én xhtml geen moeite mee moeten hebben? Of vertel ik nu onzin?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated


Start tag: required, End tag: forbidden

Intentionally left blank


  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 21:37
crisp schreef op 28 augustus 2004 @ 19:08:
In HTML4 mag je een link-tag niet afsluiten, en een paragraph mag geen block-level elementen bevatten.
link tag...stom |:(

en geen form in een paragraph dus.

tnx :)


edit:
toch maar eens xhtml ook maar eens gaan bestuderen en de pagina opnieuw maken in xhtml :)

[ Voor 16% gewijzigd door Creesch op 28-08-2004 19:27 ]


Verwijderd

Neh, zou ik niet doen. HTML is prima. Zeker omdat IE geen XHTML ondersteund.

Verwijderd

Verwijderd schreef op 28 augustus 2004 @ 20:06:
Neh, zou ik niet doen. HTML is prima. Zeker omdat IE geen XHTML ondersteund.
Omdat MS een standaard niet implementeerd, is de standaard fout?

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Nee, wat Anne bedoelt is dat wanneer je XHTML gaat gebruiken, je IE gebruikers uitsluit.

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


Verwijderd

mensen vergeten vaak dat xhtml niet per definitie beter is dan html, het is gewoon een (compleet) andere taal en houdt heel wat meer in dan alleen alle tags afsluiten en case sensitivity.

  • AkaXakA
  • Registratie: Januari 2001
  • Laatst online: 27-03 16:12

AkaXakA

Just Kidding...

Anne zou moeten bedoelen dat xhtml, als het gestuurd wordt als xhtml+xml, niet goed met IE werkt, maar vrijwel elke server stuurt het als html, dus het werkt gewoon in IE.

[ Voor 4% gewijzigd door AkaXakA op 29-08-2004 23:09 ]

http://www.akaxaka.tk/ - "Knowledge is power. Power corrupts. Study hard, be evil." - 4 Jaar GoT en nog steeds niet evil: er moet een verband zijn...


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 23-05 14:15
* T-MOB denkt dat Anne bedoelt dat het nogal zonde van je tijd is om een site die werkt in HTML om te zetten in XHTML

Overigens gooi ik zelf altijd hetzelfde scriptje boven een pagina die XHTML strict is:
PHP:
1
2
3
4
5
6
<? 
if (strpos($_SERVER["HTTP_USER_AGENT"], 'Gecko')) 
  {
     header("Content-type: application/xhtml+xml"); 
  } 
?>

Regeren is vooruitschuiven


Verwijderd

T-MOB schreef op 30 augustus 2004 @ 01:56:
* T-MOB denkt dat Anne bedoelt dat het nogal zonde van je tijd is om een site die werkt in HTML om te zetten in XHTML

Overigens gooi ik zelf altijd hetzelfde scriptje boven een pagina die XHTML strict is:
PHP:
1
2
3
4
5
6
<? 
if (strpos($_SERVER["HTTP_USER_AGENT"], 'Gecko')) 
  {
     header("Content-type: application/xhtml+xml"); 
  } 
?>
Dan moeten die paginas wel allemaal PHP zijn anders gaat dat niet werken. (Leek me wel handig om dat te vermelden).
Daarnaast, zijn de Gecko browsers de enige browsers die xhtml als xml kunnen parsen? Ik dacht dat de opera familie dat ook kon.

Verwijderd

Anne zou moeten bedoelen dat xhtml, als het gestuurd wordt als xhtml+xml, niet goed met IE werkt, maar vrijwel elke server stuurt het als html, dus het werkt gewoon in IE.
Ik zou moeten bedoelen? IE ondersteund XHTML gewoon niet, heel simpel. Als IE XHTML zou ondersteunen zou IE het op z'n minst kunnen parsen als XML, iets met namespaces zou mogelijk moeten zijn et cetera. Maar nee, IE ondersteund de namespace niet en ook het MIME type niet.


IE kan wel invalid HTML (XHTML) goed parsen, dus daarom merk je er weinig van.

Verwijderd

Iets betere methode met PHP
.htaccess oplossing, voor bestanden op de server:
code:
1
2
3
4
5
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml\s*;\s*q=0
RewriteCond %{REQUEST_URI} \.foo$
RewriteCond %{THE_REQUEST} HTTP/1\.1
RewriteRule .* - [T=application/xhtml+xml]
Waarbij .foo de bestandextensie is van je bestanden die als XHTML verstuurd mogen worden. (Zorg er wel voor dat je character encoding overal hetzelfde is aangezien de behandeling ervan verschilt per MIME type.)

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
T-MOB schreef op 30 augustus 2004 @ 01:56:
* T-MOB denkt dat Anne bedoelt dat het nogal zonde van je tijd is om een site die werkt in HTML om te zetten in XHTML


Overigens gooi ik zelf altijd hetzelfde scriptje boven een pagina die XHTML strict is:
PHP:
1
2
3
4
5
6
<? 
if (strpos($_SERVER["HTTP_USER_AGENT"], 'Gecko')) 
  {
     header("Content-type: application/xhtml+xml"); 
  } 
?>
Hey.. Doe eens niet?! Of denk je dat Gecko de enige andere renderer is naast IE? Juist door dit soort smerige browser-afhankelijke drek heeft IE het halve internet weten te verzieken.


En ik heb geen problemen gezien met IE en XHTML.

Verwijderd

Dan moet je iets verder kijken. [/flauw]

[ Voor 13% gewijzigd door Verwijderd op 30-08-2004 12:06 ]


  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Nou ik scheld met genoegen op de gebreken van IE en vind het ook een onding, maar om nou te gaan mekkeren als IE over de zeik gaat van mime-type dat geintroduceerd werd na IE6, dan ben je wel een erge kn3rd ;)


Bovendien:
This document defines the 'application/xhtml+xml' MIME media type for
XHTML based markup languages; it is not intended to obsolete any
previous IETF documents, in particular RFC 2854 which registers
'text/html'.

  • JeromeB
  • Registratie: September 2003
  • Laatst online: 19-03 22:07

JeromeB

woei

Nexxennium schreef op 30 augustus 2004 @ 12:15:
Nou ik scheld met genoegen op de gebreken van IE en vind het ook een onding, maar om nou te gaan mekkeren als IE over de zeik gaat van mime-type dat geintroduceerd werd na IE6, dan ben je wel een erge kn3rd ;)


Bovendien:


[...]
Ik mag dan geen expert zijn op dit gebied, maar volgensmij zit het zo (verbeter mij als ik het fout heb):


De browser vraagt een document op van een server.
De browser checkt het content-type.
De browser bepaalde de parser waarmee het document geparst moet worden.
In het geval van een text/html content-type zal de browser een SGML-parser kiezen.
In het geval van ee applicatikon/xhtml+xml content-type zal de browser een XML-parser kiezen.
Dan gaat de browser kijken naar een eventueel doctype. Hij laad deze doctype niet (omdat die te groot is), maar kijkt eventueel of hij het document moet parsen in quirksmode of strict-mode, etc.
Dan gaat de browser het document parsen.


----------------------------


Als je dus een document verzend met een text/html mime-type dan zal het document aangelevert worden als HTML. Dat er eventueel een XHTML doctype bijstaat en eventueel zelfs nog een XML-declaration doet er dan helemaal niet meer toe. Je gebruikt dus gewoon gaar HTML.

[ Voor 1% gewijzigd door JeromeB op 30-08-2004 12:43 . Reden: klein woordfoutje ]

PC load letter? What the fuck does that mean?


  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Nee, de browser stuurt in de request mee welke content-types hij accepteert. Als IE daar (onterecht) application/xhtml+xml bij vermeldt, dan is dat een andere zaak.


offtopic:
Mensen, let ajb eens op d/t fouten. Staat nogal.. eh. niet slim :)

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Nexxennium schreef op 30 augustus 2004 @ 12:39:
Nee, de browser stuurt in de request mee welke content-types hij accepteert. Als IE daar (onterecht) application/xhtml+xml bij vermeldt, dan is dat een andere zaak.


offtopic:
Mensen, let ajb eens op d/t fouten. Staat nogal.. eh. niet slim :)
nee maar dat is juist het probleem. IE accepteert geen application/xhtml+xml. Als je dan XHTML gaat serveren als text/html, ziet de HTML parser van IE dat (enigszins terecht) als tag-soup. Dus, zegt Anne, kun je IE beter HTML4.01 serveren.


nou denk denk ik zelf persoonlijk dat IE helemaal geen echt verschil maakt tussen HTML4.01 en XHTML-tagsoup, maar da's weer een ander verhaal 8)

  • JeromeB
  • Registratie: September 2003
  • Laatst online: 19-03 22:07

JeromeB

woei

Nexxennium schreef op 30 augustus 2004 @ 12:39:
Nee, de browser stuurt in de request mee welke content-types hij accepteert. Als IE daar (onterecht) application/xhtml+xml bij vermeldt, dan is dat een andere zaak.


offtopic:
Mensen, let ajb eens op d/t fouten. Staat nogal.. eh. niet slim :)
Ja ok, maar wat gebeurt er daarna. Hoe checkt de browser of het om een HTML of om een XML(XHTML) document gaat?

PC load letter? What the fuck does that mean?


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
JeromeB schreef op 30 augustus 2004 @ 12:49:
[...]


Ja ok, maar wat gebeurt er daarna. Hoe checkt de browser of het om een HTML of om een XML(XHTML) document gaat?
nou, volgens mij wat er in de stap daarvoor 'afgesproken' is. dus in het geval van XHTML serveren als text/html gaat de browser er vanuit dat er HTML volgt. als er dan vervolgens <br /> staat, zou een correcte HTML parser daar <br>&gt; van moeten maken. Aangezien IE dat toch slikt als HTML <br> kun je je document op dat moment beter omschrijven als "tagsoup" ipv (X)HTML...


offtopic:
ja Anne ik heb je artikel goed gelezen he ;)

[ Voor 5% gewijzigd door Genoil op 30-08-2004 12:54 ]


  • Intru
  • Registratie: November 2001
  • Laatst online: 17-05 15:35
JeromeB schreef op 30 augustus 2004 @ 12:49:
[...]
Ja ok, maar wat gebeurt er daarna. Hoe checkt de browser of het om een HTML of om een XML(XHTML) document gaat?
Dat gebeurt dus aan de hand van de mime-type.
Je XHTML als text/html versturen zorgt er dus idd voor dat het als tagsoup behandelt wordt (wat het niet is/hoeft te zijn, het kan best gevalidate xhtml zijn).


Maar goed, volgens mij raken we hier best offtopic

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
XHTML is best als vorm van HTML op te vatten, dus text/html als content-type is dan helemaal niet zo raar. Belangrijker is dan de document-type, zoals gedefinieerd in de (X)HTML. Die geeft aan hoe een browser het document moet parsen.


Ik stuur m'n XHTML bestanden gewoon als text/html. Ik zie geen problemen daarmee, en de browsers (Opera, Gecko, IE) ook niet.

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 23-05 14:15
Nexxennium schreef op 30 augustus 2004 @ 12:05:
[...]
Hey.. Doe eens niet?! Of denk je dat Gecko de enige andere renderer is naast IE? Juist door dit soort smerige browser-afhankelijke drek heeft IE het halve internet weten te verzieken.
Ik zie het probleem niet zo, de boel blijft toch in elke browser hetzelfde. Alleen in Gecko browsers rendert het sneller (ow jah, en je ontdekt sneller foutjes tijdens het bouwen van je site).
Dat de universele oplossing die Anne hierboven aandraagt beter is ben ik overigens met je eens. Binnenkort dus maar even htacces files aanmaken...

Regeren is vooruitschuiven


  • Intru
  • Registratie: November 2001
  • Laatst online: 17-05 15:35
Nexxennium schreef op 30 augustus 2004 @ 13:27:
XHTML is best als vorm van HTML op te vatten, dus text/html als content-type is dan helemaal niet zo raar. Belangrijker is dan de document-type, zoals gedefinieerd in de (X)HTML. Die geeft aan hoe een browser het document moet parsen.


Ik stuur m'n XHTML bestanden gewoon als text/html. Ik zie geen problemen daarmee, en de browsers (Opera, Gecko, IE) ook niet.
hm.. waarom kies je dan om XHTML te gebruiken, als je het toch verstuurt als html?

Verwijderd

text/html voor XHTML documenten had gekund, ware het niet dat:
The HTML WG has discussed this issue: the intention was to allow old (HTML-only) browsers to accept XHTML 1.0 documents by following the guidelines, and serving them as text/html. Therefore, documents served as text/html should be treated as HTML and not as XHTML. There should be no sniffing of text/html documents to see if they are really XHTML.


Note that there are some semantic differences between HTML documents and XHTML documents: there are specific CSS rules that only apply to HTML (and not XHTML), and the DOM has different effects (for instance, the element names are returned in uppercase for HTML, and lower case for XHTML).
En uiteraard zeggen de RFCs ook wel wat interessants erover, maar dat betekent niet ineens dat 'text/html' een correct MIME type voor XHTML is.

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Browsers kijken veel meer naar de doctype dan naar content-type. Persoonlijk vind ik het hele gedoe over application/xhtml+xml dan ook geneuzel in de marge.


Met content-type: text/html en een correcte doctype werken de drie browser-engines en de W3C validator gewoon "normaal".

Verwijderd

In het geval van een text/html content-type zal de browser een SGML-parser kiezen.
Tag soup parser* Alles behalve een echte SGML parser. WHATWG zal dit trouwens voor HTML 5.0 verbeteren en een DOCTYPE aangeven waar rare dingen als <br /> niet meer valid HTML zijn.
Dan gaat de browser kijken naar een eventueel doctype. Hij laad deze doctype niet (omdat die te groot is), maar kijkt eventueel of hij het document moet parsen in quirksmode of strict-mode, etc.
Dit is een 'sub-stap' en vindt alleen plaats als de tag soup parser geactiveerd is. Bij elk XML MIME type vindt deze stap niet plaats.
Als je dus een document verzend met een text/html mime-type dan zal het document aangelevert worden als HTML. Dat er eventueel een XHTML doctype bijstaat en eventueel zelfs nog een XML-declaration doet er dan helemaal niet meer toe. Je gebruikt dus gewoon gaar HTML.
Exact.
Browsers kijken veel meer naar de doctype dan naar content-type. Persoonlijk vind ik het hele gedoe over application/xhtml+xml dan ook geneuzel in de marge.
Onzin. Browsers kijken als eerste naar het MIME type en pas daarna, indien het text/html betreft, naar de DOCTYPE. Zie ook de quote van het W3C. Dat is exact zoals het geimplementeerd is in *elke* browser.
Met content-type: text/html en een correcte doctype werken de drie browser-engines en de W3C validator gewoon "normaal".
Mocht je ooit gaan switchen naar application/xml kom je echter wel rare dingen tegen omdat je eigenlijk HTML gebruikt. Daarnaast zijn er nog een aantal ingewikkelder problemen met character encoding e.d.


Een paar dingen die ik er recent over geschreven heb:A List Apart heeft helaas geen enkel artikel over het onderwerp, waarschijnlijk omdat ze 5 jaar geleden zijn begonnen met het promoten van XHTML...

Verwijderd

Dat de universele oplossing die Anne hierboven aandraagt beter is ben ik overigens met je eens. Binnenkort dus maar even htacces files aanmaken...
Je had door dat ik ook naar een betere PHP oplossing linkte? Die is namelijk niet Gecko of wat dan ook specifiek. Maar kijkt of de browser 'application/xhtml+xml' in de Accept header heeft en als dat het geval is...
code:
1
2
3
4
$charset = "utf-8";
$mime    = (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) ? "application/xhtml+xml" : "text/html";

header("content-type:$mime;charset=$charset");
Snap je?

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Dat ziet er netjes uit. En een testje wijst idd uit dat browser de <meta> informatie negeren ten gunste van de content-type uit de headers.


Toch heb ik niet de indruk dat Opera/Mozilla zich er ook maar iets anders door gaan gedragen. Maar goed, als het netjes kan, dan zal ik het niet laten ook :)


edit:
Om maar beetje on-topic te raken: het is dan wel vreemd dat de W3 validator hier juist niet over zeurt, terwijl text/html voor XHTML-doctypes volgens jullie incorrect en tegenstrijdig is..

[ Voor 27% gewijzigd door Fuzzillogic op 30-08-2004 15:36 ]


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Nexxennium schreef op 30 augustus 2004 @ 15:30:
Toch heb ik niet de indruk dat Opera/Mozilla zich er ook maar iets anders door gaan gedragen. Maar goed, als het netjes kan, dan zal ik het niet laten ook :)
kep ff lopen pielen, en dit maakt bijvoorbeeld al wel een verschil:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?
$charset = "utf-8";
$x = (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) ? true : false;

$mime    = $x ? "application/xhtml+xml" : "text/html";
$prolog  = $x ? "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" : "";
$ns   = $x ? "xmlns=\"http://www.w3.org/1999/xhtml\"" : "";
$lang   = $x ? "xml:lang=\"en\" lang=\"en\"" : "lang=\"en\"";
header("content-type:$mime;charset=$charset");
echo $prolog;
?>
<html <?=$ns?> <?=$lang?>>
    <head>
        <title>bla</title>
        <script type="text/javascript">
            function foo() {
                var p = document.getElementById("bar");
                
                if(p.nodeName == "p")
                    t = document.createTextNode("this document was served as application/xhtml+xml");
                else 
                    t = document.createTextNode("this document was served as text/html");
            
                p.appendChild(t);
            }
        </script>
    </head>
    <body onload="foo()">
        <p id="bar"></p>
    </body>
</html>



dingen als element.innerHTML werken ook helemaal niet meer application/xhtml+xml...


edit:
goh, ben zelfs het doctype vergeten... nouja maakt weinig uit :)

[ Voor 19% gewijzigd door Genoil op 30-08-2004 15:43 ]


Verwijderd

Dat ziet er netjes uit. En een testje wijst idd uit dat browser de <meta> informatie negeren ten gunste van de content-type uit de headers.
Merk op dat het META element helemaal nooit bedoelt was voor browsers, maar voor servers.
Toch heb ik niet de indruk dat Opera/Mozilla zich er ook maar iets anders door gaan gedragen. Maar goed, als het netjes kan, dan zal ik het niet laten ook :)
Hmm, ooit wel is in de CSS specificatie bij 'backgrounds' gekeken? Er zijn meer verschillen, maar die is het meest duidelijk.
Om maar beetje on-topic te raken: het is dan wel vreemd dat de W3 validator hier juist niet over zeurt, terwijl text/html voor XHTML-doctypes volgens jullie incorrect en tegenstrijdig is..
Het is een markup validator, geen "alles"-checker.


Genoil, je vergeet de DOCTYPE en het is geen XML Prolog, maar XML Declaration.

[ Voor 11% gewijzigd door Verwijderd op 30-08-2004 16:12 ]


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
nouja tis maar hoe je het bekijkt. aangezien ik de doctype vergeten was, was alleen de declaratie de gehele prolog, immers:
Everything before the root element is part of the XML Prolog (or SGML Prolog, if you are sending your document as text/html)
[/flauw]

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Genoil schreef op 30 augustus 2004 @ 15:41:
[...]
dingen als element.innerHTML werken ook helemaal niet meer application/xhtml+xml...
Hoeveel? Firefox pakt het gewoon.
clicky

Nu met Land Rover Series 3 en Defender 90


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
MTWZZ schreef op 30 augustus 2004 @ 17:34:
[...]


Hoeveel? Firefox pakt het gewoon.
clicky
probeer maar eens de innerHTML te writen ipv te readen. werkt bij mij iig niet..

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Maar wacht! Het volgende geintje werkt wel:
code:
1
2
var p = document.getElementById('bar');
p.firstChild.nodeValue = 'quux';

p.firstChild is de CDATA van het element P oftewel de innerHTML


ziet hier

Nu met Land Rover Series 3 en Defender 90


Verwijderd

p.firstChild is de CDATA van het element P oftewel de innerHTML
Euh... dat is gewoon werken volgens het (XML) DOM. Wat uiteraard ook op XHTML van toepassing is.


Why document.write() doesn't work in XML. Zelfde gaat op voor innerHTML op het moment. Het kan zijn dat er dingen worden verandered, maar het lijkt me sterk.

  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 21:37
goed voor mij is het duidelijk geen xhtml versie voorlopig :) (niet verwacht dat er zo'n discussie zou ontstaan :D)

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Why document.write() doesn't work in XML
Goed dat je het zegt, het werkt nu idd niet meer... Dat je zegt, "goh, wat handig allemaal!".. Nee.


Dan maar work-around gaan hacken.. *zucht* Standaarden zijn fijn & nodig, maar als ze zo'n pain-in-the-ass worden dan zullen nog minder webdevvers ernaar gaan werken dan nu al het geval is :(

Verwijderd

Dan maar work-around gaan hacken.. *zucht* Standaarden zijn fijn & nodig, maar als ze zo'n pain-in-the-ass worden dan zullen nog minder webdevvers ernaar gaan werken dan nu al het geval is :(
Sinds wanneer is HTML geen standaard meer? Sinds wanneer zijn de standaarden het probleem?

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Verwijderd schreef op 30 augustus 2004 @ 18:29:
[...]
Euh... dat is gewoon werken volgens het (XML) DOM. Wat uiteraard ook op XHTML van toepassing is.
Joh.. laat dit nou gewoon een reactie zijn op wat Genoil zei. Ik dacht dat GoT er nog steeds was om mensen te helpen??
En dan, werken volgens DOM zou dan toch in 1e instantie toch ook moeten ipv innerHTML te gebruiken of is innerHTML hier de "standaard".


Overgens nog een reply op het geneuzel over application/xhtml+xml, volgens deze style guide van de New York Public Library die in dit artikel op A List Apart wordt genoemd, is een meta tag met Content-Type en value text/html genoeg. Zoals daar en ook elders wordt vermeld zorgt <?xml voor problemen met veel browsers. Het kan ook gewoon worden weggelaten aangezien je een DOCTYPE en de xmlns in de html tag hebt staan.


@craze_
Ik heb op mijn eigen site zonder problemen XHTML gebruikt zowel met als zonder <?xml en heb er geen problemen mee gehad.

Nu met Land Rover Series 3 en Defender 90


  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Mijn site was sowieso al XHMTL, met her en der wat document.writes om e-mail adressen te verhaspelen voor spam-bots. Maar naar aanleiding van dit draadje serveer ik die XHTML dus ook netjes als application/xhtml+xml. Werkt uitstekend, en als je idd een defect maakt in de XHTML dan breekt de parser (Opera/Netscape) netjes af. Prima.


Alleen dat document.write werkt dus niet meer. Dan zijn er idd 3 dingen die je kunt doen: terug naar HTML4, erop schijten en stiekem toch text/html serveren of de document.write ombouwen.
Het eerste kan haast niet, omdat er ook XHTML-content in een DB staat. Het tweede werkt fantastisch maar is niet netjes, dus dan maar het derde.


Standaarden worden een probleem als simpele dingen, die voorheen gewoon werkten, opeens onmogelijk worden gemaakt, zonder dat er een handig iets voor in de plaats komt.
document.write("<a href='mailto:jemoeder'>Mail mamma</a>"); is toch behoorlijk wat makkelijker te typen dan het gepiel via de DOM. Nou ben ik nog wel zo gek om het te doen, maar ik hoef je niet te vertellen hoe lamlendig veel 'professionele' webdevelopers zijn qua standards-conformance.


Van de andere kant is het wel fijn dat als er nu een fout in de code zit, dan werkt het gewoon niet, punt uit. Dan ga je vanzelf wel de bug zoeken en fixen.

Verwijderd

Joh.. laat dit nou gewoon een reactie zijn op wat Genoil zei. Ik dacht dat GoT er nog steeds was om mensen te helpen??
Ik zie niet in waar mijn reactie niet hielp. Wellicht kortaf, maar wel correct.
En dan, werken volgens DOM zou dan toch in 1e instantie toch ook moeten ipv innerHTML te gebruiken of is innerHTML hier de "standaard".
innerHTML is juist niet de standaard. Volgens het DOM werkt prima, omdat dat de standaard is die voor XML (XHTML) gebruikt wordt, zoals ik aangaf.


En volgens mij was al aangeven dat A List Apart (en daarmee ook andere dingen die Jeffrey Zeldman heeft geschreven) niet compleet correct zijn wat dit betreft.


Nexxennium, XHTML in de DB lijkt me ook prima. Maar waarom zou HTML als output dan niet kunnen? Als je text/html zou gebruiken zou je gewoon HTML gebruiken, alhoewel je document misschien XHTML syntax regeltjes volgt.

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Er is een aantal kleine verschillen tussen HTML4 en XHTML1. Waar ik laatst nog mee te maken had was een <map> tag, die in het ene geval een id-attribuut vereist, en in het andere een name-attribuut. Doe je het verkeerd om, dan begint de validator te zeuren. Ok suf voorbeeld, maar toch :)


Ach het werkt nu op mijn site. Alles wordt ook door de XML-parser van Opera en Gecko afgehandeld, gezien de resultaten die een fout in de XML geeft :) Van IE heb ik geen last: de site werkte toch al niet in IE vanwege niet-ondersteunde CSS2 en alpha-blended PNG's :D

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Verwijderd schreef op 30 augustus 2004 @ 20:34:
[...]Volgens het DOM werkt prima, omdat dat de standaard is die voor XML (XHTML) gebruikt wordt, zoals ik aangaf.
Daarom zei ik ook
DOM zou dan toch in 1e instantie toch ook moeten
;)


Ik ben zelf van mening dat je Javascript toch al moet mijden als de pest omdat je zo vaak aan de slag moet met hacks en browser quirks dat je er compleet gestoord van wordt.
Natuurlijk een beetje is niet erg maar zodra de JS een beetje complex wordt begint er altijd wel 1 browser te ouwehoeren.

Nu met Land Rover Series 3 en Defender 90


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Sorry TS voor het hopeloos offtopic gaan hier, maar ik had niets te doen en wilde toch een keer wat gaan doen met PHP5. Dit scriptje kijkt naar de HTTP_ACCEPT van de UA en serveert het XHTML document dat erin gaat als text/html met HTML4.01 voor HTML UA's (zoals IE6) en als XHTML1 voor XML-aware UA's zoals FF.


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
    
    $x = (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) ? true : false;

    $oa = array();
    $oa['method'] = $x ? "xml" : "html";
    $oa['version'] = $x ? "1.0" : "4.01";
    $oa['media-type'] = $x ? "application/xhtml+xml" : "text/html";
    $oa['encoding'] = "UTF-8";
    $oa['doctype-public'] = $x ? "//W3C//DTD XHTML 1.0 Strict//EN" : 
"//W3C//DTD HTML 4.01 Strict//EN" ;
    $oa['doctype-system'] = $x ? "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" :  
"http://www.w3.org/TR/html4/strict.dtd";
    $oa['omit-xml-declaration'] = $x ? "no" : "yes";
    $oa['indent'] = "yes";
            
    $xmldoc = new DomDocument();
    $xmldoc->load($_GET['xml']);

    $xsltdoc = new DomDocument();
    $xsltdoc->load($_GET['xsl']);
    
    $result = $xsltdoc->getElementsByTagName("output");
    
    if($result->length == 0) {
        $result2 = $xsltdoc->getElementsByTagName("stylesheet");
        $stylesheet = $result2->item(0);
        $output  = $xsltdoc->createElementNS("http://www.w3.org/1999/XSL/Transform", "xsl:output"); 
        $stylesheet->insertBefore($output,$stylesheet->firstChild);
        foreach($oa as $name => $value) 
            $output->setAttribute($name, $value);
    }
    else 
        foreach($result as $output) 
            foreach($oa as $name => $value) 
                $output->setAttribute($name, $value);

    $xsltproc= new xsltprocessor;
    $xsl = $xsltproc->importStylesheet($xsltdoc);
    
    header("content-type:".$oa['media-type'].";charset=".$oa['encoding']);      
    print $xsltproc->transformToXml($xmldoc);
?>



als parameters moet je een valid xml en xsl bestand meegeven, de inhoud daarvan is verder niet zo relevant. het enige schoonheidsfoutje dat er nog in zit is de "<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />" die er door libxslt wordt bijgestopt, ook als het dat niet is. Firefox zegt dan wel bij Page Info dat het Type application/xhtml+xml is, maar bij Content-Type in de Meta box staat wel text/html. misschien dat ik het gewoon expliciet moet vermelden in de xsl file.


(heb helaas nog geen php5 host voor een linkje naar het ding in actie...)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

MTWZZ schreef op 30 augustus 2004 @ 22:53:
[...]
Ik ben zelf van mening dat je Javascript toch al moet mijden als de pest omdat je zo vaak aan de slag moet met hacks en browser quirks dat je er compleet gestoord van wordt.
Natuurlijk een beetje is niet erg maar zodra de JS een beetje complex wordt begint er altijd wel 1 browser te ouwehoeren.
Onzin, alle moderne browsers ondersteunen DOM, en de enige die af en toe ouwehoert is IE vanwege de ingebakken bugs en het afwijkende eventmodel...

Intentionally left blank

Pagina: 1