2017-09-11 6 views
0

J'essaie d'en apprendre un peu plus sur google-extensions, donc j'ai essayé de faire une simple extension qui fait une demande à un api en utilisant ajax puis retournez quelques résultats.L'extension Chrome ne fonctionne pas lorsque testé en chrome: // extensions/

Lorsque je teste directement dans le navigateur (localhost), il fonctionne parfaitement, mais lorsque je tente de tester l'ajouter à chrome://extensions/ et en cliquant sur charge l'extension non empaquetée ... en mode développeur, il ne fonctionne pas.

Ceci est mon app.js avec ajax appel:

document.addEventListener('DOMContentLoaded', function() { 

    $('#form-custom').on('submit', function(event) { 
     event.preventDefault(); 
     user = $('#user').val(); 

     $.ajax({ 
      url:'https://sitewiththeapi.net/api/searchuser/'+user+'/show/list.json', 
      dataType:'jsonp' 
     }) 

     .done(function(data){ 
      console.log(data); 
     }) 

     .fail(function(jqXHR, textStatus, errorThrown){ 
      console.error(jqXHR, textStatus, errorThrown); 
     }) 
    } 
}, false); 

Et mon dossier manifest.json:

{ 
    "manifest_version": 2, 

    "name": "MyExtension", 
    "description": "This extension will for learning", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "index.html" 
    }, 
    "content_scripts": [ 
    { 
     "matches": [ 
     "<all_urls>" 
     ], 
     "js": ["jquery.min.js", "app.js"] 
    } 
    ], 
    "permissions": [ 
    "activeTab", 
    "http://*/", 
    "https://*/" 
    ] 
} 

EDIT: Ajouté à httpsmanifest.json fichier et l'erreur persiste. la fenêtre contextuelle j'Inspecter obtenu l'erreur suivante:

jquery.min.js:4 Refused to load the script ' https://sitewiththeapi.net/api/searchuser/theuser/show/list.json ' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".

+0

Votre fichier manifeste ne dispose pas d'autorisations pour 'https'. – wOxxOm

+0

Mis à jour et l'erreur persiste. Voir mon édition – Lioo

Répondre

1

Essayez d'ajouter:

"converted_from_user_script": true, 

Après la version dans votre manifest.json.

Il s'agit plus d'un bidouillage que d'une solution légitime, mais c'est bien si vous développez cette extension pour vous-même ou simplement pour apprendre.

+0

Merci! Cela a résolu le problème! Puis-je demander ce que fait ce paramètre dans 'manifest'? Oh, une note: ** Changer le 'datatype' en' json' m'a retourné la réponse 'json', mais seulement quand je ne suis pas' localhost' **. Je ne sais pas pourquoi. – Lioo

+1

Il n'y a pas beaucoup d'informations à ce sujet mais vous pouvez lire [ceci] (https://wiki.greasespot.net/Cross-browser_userscripting) pour comprendre d'où ça vient. Comme je l'ai dit, c'est plus un hack qu'une solution légitime. Heureux d'avoir pu aider. – PredatorIWD