[IE] xhtml probleem

Pagina: 1
Acties:

  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
Ik heb ff een vraagje, ik heb hier een .xhtml file, met de volgende header en alle browsers (konqueror/mozilla/opera) renderen de pagina ok, alleen IE wil de pagina telkens opslaan, nu gebruik ik zelf geen IE maar ik zou toch graag willen dat de pagina daar ook in werkt (of iig tevoorschijn komt)

Iemand een idee hoe IE wel xhtml wil laten zien?

Onderste stukje is de header van de pagina:
code:
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="css/styles.css" type="text/css"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

[ Voor 12% gewijzigd door blouweKip op 19-08-2003 22:23 ]

"For my friends, anything; for my enemies, the law."


  • Johnny
  • Registratie: December 2001
  • Laatst online: 21-08 11:56

Johnny

ondergewaardeerde internetguru

Door hem *.html te noemen in plaats van *.xhtml.

By the way, je kunt neter XHTML 1.1 strict gebruiken als je de nieuwste standaard wilt ondersteunen. :)

[ Voor 84% gewijzigd door Johnny op 19-08-2003 22:30 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23:40

RM-rf

1 2 3 4 5 7 6 8 9

om een pagina te renderen dient de browser deze te ontvangen met content-type text/html; xml-files krijgen echter een mime-type application/xml mee. (wanneer je webserver geen mime-instelling heeft voor .xhtml zal hij waarschijnlijk application/octet-stream meegeven)

ik vermoed dat de beste oplossing is om je webserver in te stellen om de mimetype text/html mee te sturen met documenten met extensie .xhtml:
wanneer je echter geen toegang hebt tot de instellingen, en je webserver geen .htaccess herkend is de enige oplossing de eerder genoemde door johnny: hernoem naar .html of .htm

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
Ik heb dat al eerste al geprobeerd, dan heb ik echter problemen met mozilla en opera (stylesheet wordt dan niet gebruikt), ik zal straks eens kijken of dat wel met IE werkt (anders redirect ik IE gewoon door naar een .html file)

de mime types voor mn apache heb ik al aangepast (anders werkte het eveneens niet in mozilla)

Ik zal iig nog eens door mimes heenlopen of alles goed staat

[ Voor 27% gewijzigd door blouweKip op 19-08-2003 22:40 ]

"For my friends, anything; for my enemies, the law."


  • tomato
  • Registratie: November 1999
  • Niet online
RM-rf schreef op 19 August 2003 @ 22:33:
om een pagina te renderen dient de browser deze te ontvangen met content-type text/html; xml-files krijgen echter een mime-type application/xml mee. (wanneer je webserver geen mime-instelling heeft voor .xhtml zal hij waarschijnlijk application/octet-stream meegeven)
Kleine correctie:

HTML files krijgen inderdaad text/html. XHTML files zouden dit niet moeten krijgen ('SHOULD NOT') en zouden application/xhtml+xml moeten krijgen (application/xml mag ook, omdat dat een geldig mime-type voor XML documenten in het algemeen is).

XHTML 2.0 krijgt waarschijnlijk een 'MUST NOT' voor het text/html mime-type, dus wat nu al aanbevolen wordt bij XHTML 1.0 strict en 1.1 zullen we uiteindelijk zeker moeten doen (opleveren met application/xhtml+xml).

Probleem is echter dat er browsers zijn (nee, daar lezen we niet even overheen, alle IE versies vallen hier onder ;)) die erg schrikken van dat mime-type en de boel prompt aan zullen bieden als download. Mozilla en de laatst versies van Opera meen ik doen alles goed (al gelden er wel enkele nieuwe regels bij gebruik van het juiste mime-type, met name voor CSS en javascript).

Dus wil je het zo goed mogelijk doen (maar natuurlijk niet alle IE gebruikers compleet buiten sluiten), dan serveer je je XHTML bestanden met application/xhtml+xml en maak je een uitzondering voor IE, die geef je text/html.

In de praktijk wil dit nog wel eens een wat erg strakke methode zijn (die dus voor problemen zal zorgen), waardoor je het beter om kunt draaien. Kijk in de HTTP_ACCEPT header die de browser bij een request mee stuurt of het 'application/xhtml+xml' mime-type erbij staat. Zo ja, stuur je XHTML bestand met dat mime-type, anders geef je gewoon text/html.
Dit (en de eerste optie) kun je implementeren met mod_rewrite in Apache, of enkele regels code in je serverside scripttaal.
Klein probleempje is dat Opera geen HTTP_ACCEPT header stuurt en dus ook gewoon text/html krijgt.

Andere oplossing is om alle browsers gewoon text/html te geven. Wel zo veilig nu het nog mag. Als je dus geen gezeur wilt of geen goede mogelijkheden een en ander te implementeren zou ik het gewoon hier bij houden.

Om aan bestanden met de .xhtml extensie een text/html mime-type te geven kun je in Apache het volgende regeltje in een .htaccess bestand toevoegen:
code:
1
AddType text/html .xhtml


(XHTML Media Types)

  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
wat dacht je van die hele doctype zooi weghalen,
nooit meer gezeur, over verkeerd interperteren van browsers, heerlijk!

quote van een toch wel gewaardeerde koch:
"I gladly embrace most of the standards, but not all of them. We need to go over the standards and see which parts make sense (most actually do) and which ones don't. Sometimes the standard makers and browser vendors seem to be in love with complexity for its own sake. Using doctypes, for instance, can lead to disasters because the browser vendors each invented their own version of doctype switching. So I don't use doctypes."

zie: http://www.netdiver.net/interviews/peterpaulkoch.php

en daar ben ik het wel mee eens, maar goed...

[ Voor 25% gewijzigd door edwinistrator op 20-08-2003 00:14 ]


  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
Net nog even wat gestest, maar als ik aan .xhtml text/html meegeeft dat kijk IE alleen naar de html en negeert de rest (mozilla idem)
Geeft ik aan .xhtml application/xml mee dan werkt alles in mozilla maar zie ik in IE alleen de zaken uit mn stylesheet en niet de html
en application/xhtml+xml meegeven aan .xhtml werkt wederom prima in mozilla maar bied de .xhtml file ter download aan in IE

Dus voordat ik IE een ander mime-type serveer moet ik eerst weten welke werkt :(
wat dacht je van die hele doctype zooi weghalen
doet weinig

is er niet zoiets als een application/html+xml mime type?

"For my friends, anything; for my enemies, the law."


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Uhm, misschien moet je geen CSS gebruiken op de plek waar je XSLT behoort te gebruiken? Externe CSS-bestanden horen te worden aangegeven in een <link> in de <head> van een pagina, XSLT kun je in de <?xml-stylesheet ?> aangeven. Denk daar maar eens over na.

Rustacean


  • tomato
  • Registratie: November 1999
  • Niet online
Manuzhai schreef op 20 August 2003 @ 08:33:
Uhm, misschien moet je geen CSS gebruiken op de plek waar je XSLT behoort te gebruiken?
Je mag in een 'xml-stylesheet' ook CSS bestanden linken ;)
Externe CSS-bestanden horen te worden aangegeven in een <link> in de <head> van een pagina,
Dat is in HTML zo. In XML mag het ook zoals hij het nu doet.

Probleem in XHTML is nu, dat de meeste browsers het niet strict als XML applicatie behandelen, maar als HTML (en als het mime-type text/html is hebben ze daar ook gelijk in). Daarom kun je je CSS beter gewoon linken op deze manier:

code:
1
<link rel="stylesheet" type="text/css" media="screen" href="css/styles.css" />


Anders zal alleen Mozilla het goed doen en dan ook alleen als je als mime-type een XML type mee geeft.

(Referencing Style Elements when serving as XML)

  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
Ik had al wel een idee dat het daar aan zou kunnen liggen, ik zal eens kijken of dat iets uitmaakt

//edit:

zucht, als ik dus gewoon de oudewetse manier gebruik om die stylesheet aan te roepen dan leest en gebruikt ie die stylesheet wel maar negeert alle custom xml tags (die ik voor de layout structuur gebruik)

* blouweKip weet t nu ook niet meer

[ Voor 60% gewijzigd door blouweKip op 20-08-2003 16:39 ]

"For my friends, anything; for my enemies, the law."


  • pasta
  • Registratie: September 2002
  • Laatst online: 18-08 23:05

pasta

Ondertitel

operation3 schreef op 20 August 2003 @ 00:13:
wat dacht je van die hele doctype zooi weghalen,
dan is het ook geen xhtml :X
Quote van W3 Schools:
The <!DOCTYPE> is Mandatory

[ Voor 16% gewijzigd door pasta op 20-08-2003 16:29 ]

Signature


  • tomato
  • Registratie: November 1999
  • Niet online
blouweKip schreef op 20 August 2003 @ 16:22:
zucht, als ik dus gewoon de oudewetse manier gebruik om die stylesheet aan te roepen dan leest en gebruikt ie die stylesheet wel maar negeert alle custom xml tags (die ik voor de layout structuur gebruik)
Wat bedoel je met 'custom xml tags'?

  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
ik bedoel al die tags zoals <hokje></hokje> tags die ik definieer in die stylesheet, ik nam aan dat dat nu het nut van xhtml was

"For my friends, anything; for my enemies, the law."


  • tomato
  • Registratie: November 1999
  • Niet online
Euhmm... nee. De tag 'hokje' komt in de XHTML namespace niet voor en kun je daarin dus ook niet gebruiken. Je kunt eventueel wel je 'hokje' tags in een aparte namespace zetten, maar het lijkt me niet echt zinvol.

Vind je het een probleem om gewoon in XHTML gedefinieerde tags te gebruiken?

  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
opzich niet, maar ik heb eigenlijk geen zin om het allemaal om te zetten als het in principe gewoon kan werken (desnoods via een omweggetje)

"For my friends, anything; for my enemies, the law."


  • tomato
  • Registratie: November 1999
  • Niet online
Maar waarom heb je de 'hokje' tags eigenlijk geintroduceerd? Je kunt misschien even een voorbeeldje geven, maar ik denk eigenlijk dat het gebruik ervan echt vrij zinloos is...

  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
eigenlijk is het idd niet supernuttig, het is meer een uit de hand gelopen experimentje met x(ht)ml, aangezien het in mozilla, opera en konqueror gewoon werkte ging ik ervan uit dat het ook zou werken in IE, niet dus :(

"For my friends, anything; for my enemies, the law."


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

blouweKip:
ik bedoel al die tags zoals tags die ik definieer in die stylesheet, ik nam aan dat dat nu het nut van xhtml was
Je haalt nu de combinatie xhtml/css en xml/css door elkaar :) Wat jij bedoelt heeft weinig meer met HTML te maken.

Dat is ook logisch, want als je voor de grap eens in de DTD kijkt (waar die url van je !DOCTYPE naar verwijst) zul je erachter komen dat een DTD beschrijft wat er allemaal wel en niet in zo'n document thuishoort en zelfs nog een beetje op welke plaats ;)
Een aardige introductie op DTD's vind je op http://www.w3schools.com

Kortom:
of xml aanbieden en die stylen met een stylesheet. Dit is niet erg aan te raden omdat je dan toch de functie van html onderuit schoffelt
of xhtml tags gebruiken. Zie daarvoor de Technical reports op w3.org

Er is nog een oplossing, en dat is met XSLT je xml transformeren naar xhtml. Daarbij zou je inderdaad met hokje-elementen kunnen gaan werken, door die met xslt te transformeren naar bijvoorbeeld een div met class="hokje" o.i.d.
tomato:
Maar waarom heb je de 'hokje' tags eigenlijk geintroduceerd? Je kunt misschien even een voorbeeldje geven, maar ik denk eigenlijk dat het gebruik ervan echt vrij zinloos is...
Mozilla is zo vriendelijk om ook elementen die je zelf verzonnen hebt te stylen met een stylesheet.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
   <head>
      <style type="text/css">

         dit-element-bestaat-eigenlijk-niet {
            font-size:20px; color:#f00
         }

      </style>
   </head>
   <body>
      <dit-element-bestaat-eigenlijk-niet>
         mooi he?
      </dit-element-bestaat-eigenlijk-niet>
   </body>
</html>

See for yourself :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • tomato
  • Registratie: November 1999
  • Niet online
Je kunt wel andere XML applicaties mixen in een XHTML document, maar zorg dan voor de juiste namespaces. DTD's worden dan wel een probleem.

Je kunt ook een compleet eigen XML toepassing gebruiken en daar via 'xml-stylesheet' je CSS aan koppelen, maar dan stap je dus wel helemaal van (X)HTML af. Ik denk dat je daarmee niet zo ver zult komen binnen bestaande browsers.

Als ik jou was zou ik de 'verzonnen' tags gewoon even vervangen door logische tags die wel binnen XHTML bestaan ;)

  • tomato
  • Registratie: November 1999
  • Niet online
drm schreef op 20 August 2003 @ 17:11:
Mozilla is zo vriendelijk om ook elementen die je zelf verzonnen hebt te stylen met een stylesheet. <code />
Dat is aardig van Mozilla, maar je document is dan geen geldige XHTML meer (ok, in jouw voorbeeld was het dat toch al niet, maar je gaf uberhaupt geen doctype).

Ik vraag me af wat Mozilla doet met zelfverzonnen tags binnen een (verder volkomen geldig) XHTML document dat met een application/xhtml+xml mime-type geserveerd wordt. Ik vermoed dat hij het dan nog steeds gewoon accepteert.

[edit] Ik weet eigenlijk wel zeker dat Mozilla het laatste geval gewoon zal accepteren net als bij een text/html mime-type, want browsers valideren documenten niet tegen de DTD ook al wordt die meegegeven.

Mozilla gebruikt overigens bij het application/xhtml+xml mime-type wel een echte XML parser, waardoor er wel gecontroleerd wordt op XML well-formedness.

[ Voor 25% gewijzigd door tomato op 20-08-2003 17:22 ]


  • blouweKip
  • Registratie: November 1999
  • Laatst online: 10-08 18:05
Er is nog een oplossing, en dat is met XSLT je xml transformeren naar xhtml. Daarbij zou je inderdaad met hokje-elementen kunnen gaan werken, door die met xslt te transformeren naar bijvoorbeeld een div met class="hokje" o.i.d.
ok, ik zag het dus gewoon ten ornrechte als xhtml, ik zal eens gaan kijken naar xslt en anders gewoon ff alles omzetten

"For my friends, anything; for my enemies, the law."


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

tomato:
Dat is aardig van Mozilla, maar je document is dan geen geldige XHTML meer (ok, in jouw voorbeeld was het dat toch al niet, maar je gaf uberhaupt geen doctype).
Daar zeg je wat, maar ik had het al eens eerder geprobeerd met een volledig geldig xhtml document. Mozilla heeft daar poep aan :)
offtopic:
Met de sidenote dat die vriendelijkheid sarcasme was ;)
Ik vraag me af wat Mozilla doet met zelfverzonnen tags binnen een (verder volkomen geldig) XHTML document dat met een application/xhtml+xml mime-type geserveerd wordt. Ik vermoed dat hij het dan nog steeds gewoon accepteert.

edit:
Ik weet eigenlijk wel zeker dat Mozilla het laatste geval gewoon zal accepteren net als bij een text/html mime-type, want browsers valideren documenten niet tegen de DTD ook al wordt die meegegeven.
exactly :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1