Ajax/prototype.js, charset et IE

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2231
Inscription: 25 Oct 2005

Ajax/prototype.js, charset et IE

Message le Mer Juil 09, 2008 15:59

Bonjour,

Je vous expose mon problème en simplifié.
Deux pages php enregistrées en Occidental (ISO Latin 1).

La première est composée des éléments suivants

Code: Tout sélectionner
<div id="page2"><? include("page2.php");</div>
<script type="text/javascript">rafraichirpage2()</script>


Avec évidement inclusion du fichier prototype.js et du javascript de la fonction rafraichirpage2().

Lors du chargement de la page, aucun problème de caractères. Mais lorsque la page2 est rafraîchie, les caractères apparaissent différemment selon les navigateurs (?, carré...)

J'ai trouvé une solution à ce problème !
Ajouter en haut de la page2 :
Code: Tout sélectionner
header('Content-Type: text/html; charset=iso-8859-1');


Cela fonctionne parfaitement sous Firefox, Safari..etc mais évidement cela ne fonctionne pas du tout sur IE !
Cela n'affiche même pas les mauvais caractères car la page2 ne se charge pas du tout.
IE indique des erreurs sur la page...

Après quelques tests, j'ai remarqué que si la page2 n'affichait aucun texte, il n'y avait aucune erreur. Un simple "Bonjour" après le header('...') de la page2 et hop erreur.

Avez-vous une idée du problème et une solution ? Merci.


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Mer Juil 09, 2008 17:04

Humm pas bien compris ton histoire.

Tu as deux pages différentes? Ou tu charges un fichier php dans une div?

Quel est l'encodage de ton HTML (la balise <meta>) généré?

(et l'encodage faudrait un forum rien que pour ça!)

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2231
Inscription: 25 Oct 2005

Message le Mer Juil 09, 2008 17:18

Une page principale (avec balise meta iso-8859-1) composée de plusieurs "cadres" <div>.
Dans l'un d'eux, j'affiche/réactualise via Ajax un autre fichier php.

L'affichage par inclusion (include) ne pose aucun problème, quand c'est demandé via Ajax (soit par un événement ou périodiquement), le problème des caractères se pose.


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Re: Ajax/prototype.js, charset et IE

Message le Mer Juil 09, 2008 17:46

Robinson a écrit:Bonjour,
Code: Tout sélectionner
header('Content-Type: text/html; charset=iso-8859-1');



slt,
Tente de spécifier ceci plutôt :
Code: Tout sélectionner
header( 'Content-Type: text/xml; charset=ISO-8859-1' );

a+

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2231
Inscription: 25 Oct 2005

Message le Mer Juil 09, 2008 22:31

humm cela n'y changera rien, du moins c'était bien celui-ci qui était en place ^^
Là c'était juste de mémoire et non un copier-coller :P


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Message le Mer Juil 09, 2008 22:55

nan ok c juste qu'un jour je comprenais pourquoi sous ie uniquement le retour de responseXML.documentElement plantait à cause de l'absence du content type text/xml dans la page
nan là toi vu que tu utilises prototype, va débuggé la réponse...
j'imagine que les msg d'erreur d'ie sont incompréhensible comme d'hab?

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2231
Inscription: 25 Oct 2005

Message le Mer Juil 09, 2008 23:33

Bon en fait non tu avais raison ^^
Il fallait bel et bien remplacer html par xml.

Merci beaucoup.


pfiouuuu comment IE peut-il sortir une erreur aussi importante là-dessus, ça me trou le luc ^^
Et oui, les messages d'erreurs d'IE sont toujours aussi incompréhensibles... (ligne 1365, caractère 6...)


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Jeu Juil 10, 2008 8:15

Bah pour une fois qu'il respecte une règle qui a du sens c'est plutôt bien.

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2231
Inscription: 25 Oct 2005

Message le Jeu Juil 10, 2008 10:44

Mouais mais il pourrait éviter de tout casser et de stopper le reste de la page.
Car le moindre petit javascript sur la page 1 ne marchait plus, même situé avant l'erreur.
Super pratique pour trouver d'où vient le problème qui n'était détecté par aucun outil et par aucun autre navigateur plus respectueux des normes...

Enfin bref, IE est toujours là pour faire chier les développeurs ^^


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Jeu Juil 10, 2008 10:58

Y'a possibilité de débugger du js sous IE, via Microsoft Visual Web Developer 2008 Express Edition par exemple.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités