À l'aide de jQuery.getJSON en Extension Chrome
J'ai besoin de faire une croix-demande de domaine dans une extension chrome. Je sais que je peux via la transmission de message mais je préfère rester à juste jQuery idiomes (donc mon javascript peut aussi fonctionner comme un <script src="">
).
Je ne la normale:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(data) {
console.log(data);
});
mais dans la console d'erreur que je vois:
Uncaught ReferenceError: jsonp1271044791817 is not defined
JQuery est pas l'insertion de la fonction de rappel correctement dans le document? Que puis-je faire pour faire ce travail?
(Si je colle le code dans une console chromée, il fonctionne très bien, mais si je l'ai mis comme le page.js dans la prolongation, c'est quand le problème apparaît.)
Vous devez vous connecter pour publier un commentaire.
Hélas, aucun d'eux n'a fonctionné, j'ai donc fini par faire de la communication par l'background.html.
background.html
javascripts/page.js
Port error: Could not establish connection. Receiving end does not exist.
Si vous spécifiez "api.flickr.com" dans votre le manifeste.json fichier vous n'aurez pas besoin d'utiliser le JSONP rappel, l'injection de scripts style de la croix-demande de domaine.
Par exemple:
Cela devrait fonctionner à merveille dans votre code. Je voudrais supprimer le paramètre de chaîne de requête "&jsoncallback" comme il n'y a pas de JSONP travail nécessaire.
La raison pour laquelle votre code actuel n'est pas le travail, c'est votre code est d'injecter dans les pages DOM, le contenu des scripts d'accéder au DOM mais pas d'accès au contexte javascript, donc il n'y a pas de méthode à appeler sur le rappel.
Mes impressions que cela échoue, car le jQuery fonction de rappel est en cours de création au sein de la "isolé du monde" de l'extension Chrome et est inaccessible lorsque la réponse est:
http://code.google.com/chrome/extensions/content_scripts.html#execution-environment
J'utilise Prototype et jQuery pour diverses raisons, mais ma solution rapide doit être facile à analyser:
Sinon, vous pouvez essayer d'utiliser l'extension XHR capacité:
http://code.google.com/chrome/extensions/xhr.html
La syntaxe est un peu hors. Il n'y a pas besoin de la
callback(
peu. Cela fonctionne parfaitement. Testé dans la console javascript de Chrome sur ce StackOverflow page (qui inclut jQuery):page.js
d'une extensionpage.js
un contenu de script?Comme beaucoup d'entre vous le savez, Google Chrome ne prend pas en charge tout de la pratique GM_ fonctions pour le moment.
En tant que tel, il est impossible pour faire du ski site requêtes AJAX en raison de divers sandbox restrictions (même à l'aide de idéal outils comme James Padolsey Croix de Demande de Domaine Script)
J'avais besoin d'un moyen pour les utilisateurs de savoir quand mon script Greasemonkey a été mis à jour dans google Chrome (depuis Chrome ne fait pas ça non plus...). Je suis venu avec une solution qui est décrit ci-après (et à les utiliser dans mes Phare++ script) et intéressant à lire pour ceux d'entre vous qui veulent pour vérifier la version de votre scripts:
http://blog.bandit.co.nz/post/1048347342/version-check-chrome-greasemonkey-script