Ouvrir un document XHTML avec Internet Explorer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ouvrir un document XHTML avec Internet Explorer

par MainMa » 24 mai 2007, 13:11

Petit détail : les balises "<!NOMDEBALISE>" ne sont ni du HTML ni du XML : c'est du SGML. Ce qui sera affiché dans ta page ne sera que ce qui est compris entre les balises <body> et </body>. Il est donc normal que tu ne voies pas ce qu'il y a dans ta balise <!ENTITY >.
En tout cas, lorsque l'on a dans DTD "<!ENTITY test "This is a test">", en mettant "&test;" dans le document XHTML on doit voir "This is a test", et rien d'autre. Tout autre truc indique que le DTD n'est pas pris en compte par le navigateur pour ce fichier (soit parce que le navigateur est pourri, soit parce que le fichier est mal écrit ou mal envoyé et est par exemple interprété comme HTML, et non comme XHTML).

Je ne comprends pas donc très bien la remarque...

par Cyrano » 24 mai 2007, 12:09

Petit détail : les balises "<!NOMDEBALISE>" ne sont ni du HTML ni du XML : c'est du SGML. Ce qui sera affiché dans ta page ne sera que ce qui est compris entre les balises <body> et </body>. Il est donc normal que tu ne voies pas ce qu'il y a dans ta balise <!ENTITY >.

par MainMa » 24 mai 2007, 11:53

Bah chez moi, et sous Firefox 2, et sous IE 6 je ne vois que :

&test;

(encore heureux, on ne voit plus la fin de la DTD sous IE).

par Cyrano » 24 mai 2007, 07:44

Encore une fois, je ne garantis rien et mon bouquin sur le XML est chez moi, je ne l'aurai que ce soir, donc sous réserve, essaye comme ceci :
<?php
echo('<?xml version="1.0" encoding="iso-8859-1"?>' . "\n");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!ENTITY test "This is a test">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />
  </head>
  <body>
    <div>&test;</div>
  </body>
</html>
De mon coté, ça fonctionne tous navigateurs.

par MainMa » 23 mai 2007, 23:46

PS. En mettant "<?xml version="1.0" encoding="iso-8859-1"?>" avant le "<!DOCTYPE...", rien ne change.

par MainMa » 23 mai 2007, 23:35

Bon, prenons un exemple tout simple. On a un fichier XHTML avec un DTD qui ne contient qu'un seul "ENTITY", pour bien voir que le DTD est pris en compte. Le script entier est :

Code : Tout sélectionner

<?php header("Content-Type: application/xhtml+xml; charset=ISO-8859-1"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [ <!ENTITY test "This is a test"> ]> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head> <body> <div>&test;</div> </body> </html>
Ainsi, Firefox va nous afficher juste :

This is a test

Lorsqu'on passe à IE6, celui-ci ne comprend pas ce qu'on veut de lui (à cause du Content-type "application/xhtml+xml"), et propose donc de télécharger le fichier sur le disque. Pour lui faire comprendre qu'il s'agit d'un fichier XHTML, on l'envoie comme une simple page HTML, sans préciser le "application/xhtml+xml". Sauf que dans ce cas, IE nous affiche gentillement :

]>
&test;


ce qui veut dire qu'il n'a rien compris à notre DTD.

Vous voyez la chose ?

par Cyrano » 23 mai 2007, 22:36

Fais donc voir des extraits de ton code, ce sera plus parlant :-k

À tout hasard, ton fichier commence-t-il bien par :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?>
:?:

par MainMa » 23 mai 2007, 22:34

Sauf que je n'arrive même pas à inclure le DTD dans le fichier XHTML ; sous Firefox tout marche, par contre IE, lui, m'imprime "]>" en tant que première ligne sur l'écran.

Mais... enfin... je ne comprends pas un truc. IE sait très bien utiliser XML (il arrive à le lire, quoi). Il doit y avoir donc une façon de lui faire lire XHTML aussi, non ? :roll:

par Cyrano » 23 mai 2007, 21:20

Je ne m'avancerai pas trop avant dans les détails et je donne cette réponse avec quelques réserves. Il me semble, si tu veux envoyer d'autres formats XML que le XHTML, qu'il faut préciser les ajouts de DTD dans ton en-tête de page de façon à ce que le navigateur puisse les trouver s'il ne sont pas intégrés dedans.

La DTD XHTML est intégrée dans les navigateurs, donc à la limite, si on ne met pas de DOCTYPE, le navigateur va le lire quand même malgré le fait que l'absence du DOCTYPE rende le code non valide. Mais pour le MathML par exemple, il est possible (probable ?) que tous les navigateurs ne l'intègrent pas. Donc il faut ajouter cet élément dans le DOCTYPE.

Fouille un peu la documentation sur le XML, tu devrais trouver des éléments te permettant de faire ce que tu décris.

par MainMa » 23 mai 2007, 19:39

Oui oui, je vois bien que ça pose problème. Mais... comment alors pouvoir utiliser MathML etc. ? (Sans obliger bien sûr les utilisateurs IE à installer un plugin, un addon etc.)

par Victor BRITO » 23 mai 2007, 17:38

Une page XHTML traitée en tant que XML posera un problème sous Internet Explorer.

Ouvrir un document XHTML avec Internet Explorer

par MainMa » 21 mai 2007, 15:51

Bonjour,

Est-ce qu'il y a une possibilité d'afficher un document XHTML avec Internet Explorer 6 et 7 ?

En fait, je veux utiliser sur mon site des fonctions disponibles uniquement dans XHTML, par exemple MathML, SVG ou encore une DTD spécifique ; ça marche très bien sous Firefox, mais j'arrive pas à trouver la façon de faire tourner ça avec IE...