3

Je souhaite que la page contextuelle de mon extension Chrome affiche un graphique Google affichant des informations sur les habitudes de lecture de l'utilisateur. Je remarque (en particulier ici: Chrome extension doesn't work) qu'un problème avec ceci est que les extensions Chrome ne permettent pas le script en ligne, ce qui complique l'inclusion des fichiers API nécessaires pour utiliser Google Chart. Y a-t-il un moyen de contourner ceci? Y at-il un endroit où je peux télécharger l'intégralité de l'API pour l'inclure simplement dans mon extension?Google Graphique dans Chrome Extension Popup?

+0

N'est-ce pas [réponse] (http://stackoverflow.com/questions/10799257/chrome-extension-doesnt-work#comment14051301_10799671) assez bon? –

+0

J'espérais plus de détails, ou peut-être une alternative. Vous remarquerez que j'ai lié à ce fil dans le message original, et qu'il ne fournit pas beaucoup de réponse - s'il n'y a plus de réponse, j'aimerais savoir. – Zhankfor

+0

** Il n'y a aucun moyen de relâcher cette restriction aussi. ** Cela me semble être une réponse définitive. –

Répondre

1

Vous ne pouvez pas utiliser les graphiques Google si le document est dans le contexte de l'extension Chrome car il enfreint la règle JavaScript en ligne. Cependant, vous pouvez placer un iframe dans le popup de l'extension qui référence une ressource distante. Par exemple, si l'extrait ci-dessous est dans votre pop-up:

<iframe src="https://mycoolextension.com/user/12345"></iframe> 

Ensuite, vous pouvez avoir une application en utilisant des diagrammes Google disponibles à l'adresse https://mycoolextension.com/user/12345. Si vous souhaitez intégrer les diagrammes aux données de l'extension, vous devrez soit ajouter des paramètres à l'adresse iframe du diagramme, soit implémenter un script de contenu aux valeurs de message dans l'iframe.

2

Une extension peut, en principe, utiliser une bibliothèque qui enfreint CSP. Cependant, cela nécessite un cerceau supplémentaire pour sauter: Sandboxing.

"sandbox": { 
    "pages": [ 
     "sandbox.html" 
    ] 
    "content_security_policy": 
     "sandbox allow-scripts; script-src 'self' 'unsafe-eval' https://www.google.com/jsapi" 
    ], 

Il a été spécifiquement créé pour résoudre ce problème. Voir le guide "Using eval in Chrome Extensions. Safely." pour les détails de mise en œuvre.

Vous devrez communiquer les résultats entre vos scripts normaux et le bac à sable, car les pages en bac à sable n'ont aucun accès à l'API Chrome.