Je rencontre un petit souci d'encoding avec l'objet XMLHttpRequest, et ce même sans utiliser PHP.
J'ai spécifié toutes mes pages selon l'encoding utf-8.
J'ai une page index.html qui contient plusieurs div dont une qui sert a contenir un contenu. je veux changer le contenu de cette div au clique sur un bouton.
Voici le code le index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Page de test</title>
<link rel="stylesheet" type="text/css" href="style_div.css">
<script src='./scripts/alimenter.js' language='javascript'></script>
</head>
<body>
<div id="bandeau">Ceci est le bandeau</div>
<div id="fond">
<div id="menu">
Ceci est le menu <br/>
<img src='./img/change_state.gif' onclick='alimenterContenu(1)'>
</div>
<div id="contenu">
Ceci est le contenu
</div>
</div>
<div id="piedpage">Ceci est le pied de page</div>
</body>
</html>
afficher.js =
// JavaScript Document
function alimenterContenu(i){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("GET", "text1.html", true);
xhr_object.send(null);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
//alert(xhr_object.responseText);
setContentDiv("contenu", xhr_object.responseText + "<br />");
}
}
}
function clearDiv(id) {
document.getElementById(id).innerHTML = "";
}
function setContentDiv(id, txt) {
clearDiv(id);
document.getElementById(id).innerHTML += txt+"<br />";
}
Je charge donc la div id="contenu" par texte.html que voici:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Page de test</title>
<link rel="stylesheet" type="text/css" href="style_div.css">
</head>
<body>
Ceci est une page externe avec du contenu <b>formaté</b>.
</body>
</html>
Bilan des courses: le é ne ressort pas. (j'ai le gros losange noir avec ? blanc au milieu). J'ai beau chercher partout sur le net, il est écrit qu'il faut être sur le même encoding de bout en bout (ce qui est le cas) et que XMLHttpRequest encode en utf-8 (ce que j'ai choisi).
Je vois donc pas ce que je fais de faux...
Merci de votre œil avisé.
