Comment puis-je lire un JSON dans le script-tag à partir de JavaScript?
J'ai une page générée dynamiquement lorsque je veux utiliser un JavaScript statiques et passer une chaîne JSON en tant que paramètre. J'ai vu cette approche utilisée par Google (voir Google +1 Bouton: Comment font-ils?).
Mais comment dois-je lire la chaîne JSON JavaScript?
<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script src="myscript.js">{"org": 10, "items":["one","two"]}</script>
</head>
<body>
Hello
</body>
</html>
Dans ce JavaScript je voudrais utiliser le JSON argument {"org": 10, "items":["one","two"]}
du document HTML. Je ne sais pas si c'est mieux de le faire avec jQuery ou sans.
$(function() {
//read JSON
alert("the json is:")
})
Vous devez vous connecter pour publier un commentaire.
Je voudrais changer le script déclaration à ceci:
Type de Note et les champs id. Après que
fonctionne très bien dans tous les navigateurs.
La
type="application/json"
est nécessaire pour empêcher le navigateur de l'analyser pendant le chargement.<script>
élément qui a défini la SRC ne doit pas contenir autre chose que de nouvelles lignes et/ou des commentaires. Voir "Un script élément avec un attribut src doit contenir que:" dans le lien ci-dessus. Sinon validateur HTML volonté de se plaindre.<script src="jquery-1.6.2.min.js"></script>
là.<style>
par exemple. Donc, JSON doit être protégé correctement:</script>
-><\/script>
dans les chaînes et la comme.J'ai fini avec ce code JavaScript pour être indépendant de jQuery.
document.getElementById
? De cette façon, vous n'avez pas à vous rappeler de garder ce dernier. Ni quiconque d'autre modifications de la page dans l'avenir.À lire JSON dans
<script id="myJSON">
utilisationVous pouvez également utiliser les méthodes de point pour le script comme
document.scripts[0]
JS:
HTML:
<script id="myJSON">
tag a aussi besoin de latype="application/json"
attribut.ou d'inventer une autre méthode pour identifier le script.
Peut-être lieu de
.html()
vous pourriez avoir besoin.text()
. Pas sûr. Essayer les deux.{"org": 10, "items":["one","two"]}
<script>
balise asrc
alors il ne DOIT PAS avoir n'importe quel contenu à tous.