Allora, per prima cosa correggi il file JSON, è sintatticamente scritto male, ci sono delle virgole di troppo. Usa questo:
Seconda cosa. Ti ho corretto la funzione, mi sono anche rinominato le variabili per raccapezzarmi, ma se vuoi puoi rimetterti i nomi di prima...codice:[ { "isbn":"9788850326662", "title":"C Pocket", "author":"Enrico Amedeo", "pubdate":"10/2007", "pages":"240" }, { "isbn":"9788850326273", "title":"UML Pocket", "author":"Enrico Amedeo", "pubdate":"4/2007", "pages":"216" }, { "isbn":"9788850323913", "title":"C# Pocket", "author":"Enrico Amedeo,Giuseppe Marchi", "pubdate":"11/2005", "pages":"240" } ]
Ultima cosa e anche la più importante. Se non hai motivi veri per usare ajax in modo SINCRONO (e non mi sembra tu ne abbia in questo caso), usalo in modo ASINCRONO. Ti correggo la funzione di conseguenza. Se puoi usa questa o qualcosa di simile.codice:function scarica() { var oReq = new XMLHttpRequest(); oReq.open("get", "books1.json", false); oReq.send(null); var aBooks = JSON.parse(oReq.responseText), sHTML = "<table width=\"100%\">"; for (var nItem = 0; nItem < aBooks.length; nItem++) { sHTML += "<tr><td>" + aBooks[nItem].title + "</td>" + "<td> (" + aBooks[nItem].isbn +")</td>" + "<td>" + aBooks[nItem].pages + "pp</td></tr>"; } sHTML += "</table>"; document.getElementById("books").innerHTML = sHTML; }
codice:function popolaTabella () { var aBooks = JSON.parse(this.responseText), sHTML = "<table width=\"100%\">"; for (var nItem = 0; nItem < aBooks.length; nItem++) { sHTML += "<tr><td>" + aBooks[nItem].title + "</td>" + "<td> (" + aBooks[nItem].isbn +")</td>" + "<td>" + aBooks[nItem].pages + "pp</td></tr>"; } sHTML += "</table>"; document.getElementById("books").innerHTML = sHTML; } function scarica () { var oReq = new XMLHttpRequest(); oReq.open("get", "books1.json", true); oReq.onload = popolaTabella; oReq.send(null); }![]()

Rispondi quotando