XHTML 1.1 + IE = Foute Combi ?
Nu keek een vriend van me op de pagina (IE6, Windows XP SP2), en hij kreeg de volgende error:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
Parameter entity must be defined before it is used. Error processing resource 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd...
%xhtml-prefw-redecl.mod;
-^
dit is mij doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Wat doe ik hier fout, of ondersteund internet explorer nog geen xhtml 1.1 ? is het misschien beter om xhtml 1.0 te gebruiken ?
Gewijzigd op 18/12/2005 15:19:00 door Pim Vernooij
klik) en ik heb geen problemen. Dat komt omdat ik mijn pagina naar IE verzend als text/html en naar browsers die XHTML 100% goed ondersteunen, zoals de VuurVos, als application/xhtml+xml
Jij verzendt hem misschien als text/xml of application/xhtml+xml naar alle browsers. En dat is niet goed aangezien Internet Expleurer dat niet ondersteunt.
Ik gebruik ook XHTML 1.1(Jij verzendt hem misschien als text/xml of application/xhtml+xml naar alle browsers. En dat is niet goed aangezien Internet Expleurer dat niet ondersteunt.
btw, FireFox is niet 100% compatible met XHTML, officieel zijn er maar 3 browsers die het volledig ondersteunen, 1 daarvan is Safari, maar dat terzijde :) FireFox komt er wel dichtbij ^^
/edit
iets anders -> wat is het verschil tussen en ? wat is de meest gebruikte ?
Gewijzigd op 18/12/2005 15:41:00 door Pim Vernooij
En de juiste headers verzenden doe ik met dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Oke, opeens was ik niet meer ingelogt. :o
ik heb dat stuk code helemaal bovenaan gezet ($xhtml_accept() zonder $), maar het werkt niet :s ik krijg gewoon dezelfde error :/ kan je jou code tot en met de doctype laten zien?
Alles trek ik uit de database. Misschien kan je beter jou gegeneerde code posten. Of een link geven.
Code (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
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
<?php
function xhtml_accept() {
if (!isset($_SERVER['HTTP_ACCEPT']) || !preg_match("#application/xhtml\+xml#si", $_SERVER['HTTP_ACCEPT'])) {
return false;
}
return true;
}
if ( xhtml_accept() ) {
header("Content-type: application/xhtml+xml");
} else {
header("Content-type: text/html");
}
error_reporting( E_ALL );
session_start();
include( 'classes/index.class.php' );
$website = new Index();
$website->setUseArrayValue( FALSE );
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"; //echo omdat php <? anders als php openings tag ziet...
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
function xhtml_accept() {
if (!isset($_SERVER['HTTP_ACCEPT']) || !preg_match("#application/xhtml\+xml#si", $_SERVER['HTTP_ACCEPT'])) {
return false;
}
return true;
}
if ( xhtml_accept() ) {
header("Content-type: application/xhtml+xml");
} else {
header("Content-type: text/html");
}
error_reporting( E_ALL );
session_start();
include( 'classes/index.class.php' );
$website = new Index();
$website->setUseArrayValue( FALSE );
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"; //echo omdat php <? anders als php openings tag ziet...
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
En kan je me de output laten zien ervan? Als hij te lang is voor op het forum, moet je hem even via een persoonlijk bericht sturen.
Om even terug te komen op jouw eerste post in deze thread: wat jij doet is niet toegestaan. XHTML 1.1 is gedefinieerd als pure XML en je mag dat dus niet als text/html versturen, zelfs niet als IE er dan niets mee kan.
Als je dan toch zonodig wilt dat mensen met IE je pagina kunnen zien, kun je op http://www.w3.org/MarkUp/2004/xhtml-faq#ie een hack vinden.
Ik heb het met een tip van sebastiaan opgelost. er stond comment-html code tussen het document type en de html tag, dit staat nu tussen de head tag, en het werkt. Het script op te checken of je browser wel xhtml compatible is, gebruik ik niet.