problème bizarre ... disparaissent

Le
unbewusst.sein
problème bizarre sur Google Chrome (extensions désactivées) ET Safari.
la source, dans un éditeur de texte :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>

<link rel="stylesheet" href="/AB2Html/css/form.css"
type="text/css"/>
<script src="/AB2Html/js/form.js" type="text/javascript"/>
</head>
<body style="direction: ltr;">
<div id="header">

</body>
</html>

le document est produit par xslt, les balises sont bien balancées.

ce que voient ces deux navigateurs (firebug) :

<html lang="fr" xml:lang="fr">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Carnet d'adresses d'Yvon Thoraval</title>
<meta name="robots" content="index,follow"/>
<meta name="language" content="fr"/>
<meta name="author" content="Yvon Thoraval"/>
<meta name="generator" content="cousu main"/>
<meta name="description" content="AB2Html est une application Ruby de
publication du Carnet d'adresses MacOS X"/>
<meta name="Keywords" content="Carnet d'adresse, Address Book"/>
<link rel="shortcut
icon" href="/AB2Html/Images/AddressBook.ico" type="images/x-icon"/>
<link rel="icon" href="/AB2Html/Images/AddressBook.ico" type="image/x-ic
on"/>

<style>
<link rel="stylesheet" href="/AB2Html/css/styles.css" type="text/css"/>
<link rel="stylesheet" href="/AB2Html/css/theme.css" type="text/css"/>
<link rel="stylesheet" href="/AB2Html/css/form.css" type="text/css"/>

<script src="/AB2Html/js/form.js" type="text/javascript">
</head>
<body style="direction: ltr;">
<div id="header">

</body>
</html>
</script>
</head>

<body></body>
</html>

donc là il y a DEUX <body></body>

le premier coincé entre <script et </script>

et le second qui provient de firebug

si j'affiche la source, elle est "normale".

que j'actionne - OU PAS - la console dev web, rien ne s'affiche sur le
butineur.

idem si je supprime xml et dtd :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

le contenu de mon script "form.js" :
window.onload=setup;
var sty;
function setup(){
sty=document.getElementById('search_div').style;
search_switch();
document.getElementById('search_button').onclick=search_switch;
}
function search_switch(){
sty.display=(sty.display=='')? 'none' : '';
}


si je supprime ce script en supprimant :
<script src="/AB2Html/js/form.js" type="text/javascript"/>
ça redevient "normal"
normal au sens de pas de <body/> dans <script/>

--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
unbewusst.sein
Le #24301831
Une Bévue
si je supprime ce script en supprimant :
ça redevient "normal"...
normal au sens de pas de <body/> dans <script/>...



ça redevient "normal" si au lieu de :
(balise auto feermante)
j'ai :
--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
unbewusst.sein
Le #24301851
Une Bévue
ça redevient "normal" si au lieu de :
(balise auto feermante)
j'ai :



c'est résolu en changeant ma feuille xsl :
javascript -->]]></script>
afin d'éviter autofermeture de <script />


--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Olivier Miakinen
Le #24305131
Bonjour,

Le 07/03/2012 14:35, Une Bévue a écrit :
problème bizarre sur Google Chrome (extensions désactivées) ET Safari.
la source, dans un éditeur de texte :
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>


^^^^^^^^^^

...
<link rel="stylesheet" href="/AB2Html/css/form.css"
type="text/css"/>


^^

Tu déclares ta page comme étant du HTML, ce qui fait qu'elle n'est pas
passée à un parseur XML mais considérée comme une soupe de balises HTML
(du HTML avec erreurs, quoi). Or, dans ce cas, le « / » de fin d'une
balise vide est en principe ignoré, et ton <script> est considéré comme
non fermé car il lui manque le </script>.

Si tu tiens absolument au XHTML, alors il vaudrait mieux le déclarer
comme tel afin de bénéficier du contrôle plus strict du parseur (et
afin que ton code ne soit pas considéré comme une soupe de balises).

Voir par exemple
Cordialement,
--
Olivier Miakinen
Olivier Miakinen
Le #24305871
Le 08/03/2012 18:01, je répondais à La Bévue :

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>


^^^^^^^^^^
Si tu tiens absolument au XHTML, alors il vaudrait mieux le déclarer
comme tel afin de bénéficier du contrôle plus strict du parseur (et
afin que ton code ne soit pas considéré comme une soupe de balises).



Je précise deux choses quand même :
- il ne faut pas le faire tant que tu voudras que ta page soit visible
dans Internet Explorer (au moins jusqu'à la version 8, je ne sais pas
si c'est corrigé dans IE 9) ; ou alors tu dois sniffer le type de
navigateur pour ne l'envoyer qu'à ceux qui supportent ce Content-Type.
- changer le <meta> ne servira à rien si ton serveur déclare aussi
un Content-Type dans les entêtes HTTP, ce qu'il devrait faire en
principe ; tu dois aussi (et même surtout) changer celui-là.

Tu peux aussi décider de rester en HTML (version soupe de balises si ton
Doctype déclare XHTML, version propre s'il déclare HTML 4.01 Strict).

Cordialement,
--
Olivier Miakinen
unbewusst.sein
Le #24306931
Olivier Miakinen

Tu déclares ta page comme étant du HTML, ce qui fait qu'elle n'est pas
passée à un parseur XML mais considérée comme une soupe de balises HTML
(du HTML avec erreurs, quoi). Or, dans ce cas, le « / » de fin d'une
balise vide est en principe ignoré, et ton <script> est considéré comme
non fermé car il lui manque le </script>.

Si tu tiens absolument au XHTML, alors il vaudrait mieux le déclarer
comme tel afin de bénéficier du contrôle plus strict du parseur (et
afin que ton code ne soit pas considéré comme une soupe de balises).

Voir par exemple


OK, merci, j'avoue que je me fiche un peu d'être ou ne pas être en
xhtml, vu que le code html produit est nécessairement bien balancé car
produit par saxon.

comme il n'est pas sûr qu'-x-html ait un intérêt je vai sans doute
passer à html 4.x.x strict.

en tout cas pour la balise auto fermante c'est la première fois que ça m'arrive, je veux dire que seul
"saxon9he.jar" m'a transformé cette balise en autofermante.

je veux dire que la ligne xsl :

a été transformée en :
aussi bien par le proc xslt Ruby que Php.

alors que saxon lui, autoferme :
càd laisse comme la ligne était dans le code, il a même fallu ruser pour
obtenir un balisage non autofermant :
javascript -->]]></script>
unbewusst.sein
Le #24306941
Olivier Miakinen

Je précise deux choses quand même :
- il ne faut pas le faire tant que tu voudras que ta page soit visible
dans Internet Explorer (au moins jusqu'à la version 8, je ne sais pas
si c'est corrigé dans IE 9) ; ou alors tu dois sniffer le type de
navigateur pour ne l'envoyer qu'à ceux qui supportent ce Content-Type.



ces pages-là, privées, ne sont pas vues par IE.

- changer le <meta> ne servira à rien si ton serveur déclare aussi
un Content-Type dans les entêtes HTTP, ce qu'il devrait faire en
principe ; tu dois aussi (et même surtout) changer celui-là.



ah oui dans ma config apache, ça voudrait dire que soit je mets une
extension "xhtml" à ces fichiers, pour les servir en application xml,
soit je suppose, ce qui n'est pas le cas, que toutes mes pages, sur un
serveur donné sont en xhtml.

Tu peux aussi décider de rester en HTML (version soupe de balises si ton
Doctype déclare XHTML, version propre s'il déclare HTML 4.01 Strict).



Là, je ne pige pas du tout cette phrase.

en tout cas merci pour ces précisions.
Publicité
Poster une réponse
Anonyme