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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>passer un tableau d objets avec une notation json</title>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<style type="text/css">
</style>
</head>
<body>
<div id="json"></div>
<script type="text/javascript">
var FC = {
Ajax: {
requete: function() {
if(window.XMLHttpRequest) { return new XMLHttpRequest(); }
else if(window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); }
else { return false; }
}(),
obtenir: function(typeDeReponse, source, fonction) {
var requete = FC.Ajax.requete;
if(!requete) { return false; }
requete.onreadystatechange = function() {
if(requete.readyState===4 && requete.status===200) {
if(fonction) {
if(typeDeReponse==="xml") {
fonction(FC.DOM.nettoyerDocument(requete.responseXML.documentElement));
} else { fonction(requete.responseText); }
}
}
}
requete.open("GET", source, true);
requete.send(null);
}
},
DOM: {
nettoyerDocument: function(xmldoc) {
var elements = xmldoc.getElementsByTagName("*");
for(var i=0, imax=elements.length; i<imax; i++){
var frerePrecedent = elements[i].previousSibling;
var frereSuivant = elements[i].nextSibling;
if(frerePrecedent && frerePrecedent.nodeType===3) { FC.DOM.nettoyerNoeud(frerePrecedent); }
if(frereSuivant && frereSuivant.nodeType===3) { FC.DOM.nettoyerNoeud(frereSuivant); }
}
return xmldoc;
},
nettoyerNoeud: function(element) {
if(!element.data.replace(/\s/g,'')) { element.parentNode.removeChild(element); }
}
}
}
FC.Ajax.obtenir("text", "json.txt", function(json) {
var obj = document.createElement("script");
obj.setAttribute("type", "text/javascript");
obj.text = "var o = "+ json +";";
document.getElementById("json").appendChild(obj);
alert(o[1].p1);
});
</script>
</body>
</html> |
Partager