2017-09-11 1 views
0

Ich versuche, ein wenig über Google-Erweiterungen zu lernen, also habe ich versucht, eine einfache Erweiterung, die eine Anfrage an eine api mit ajax machen Dann gib einige Ergebnisse zurück.Chrome Erweiterung funktioniert nicht, wenn in Chrom getestet: // Erweiterungen/

Wenn ich direkt im Browser testen (localhost), es funktioniert perfekt, aber wenn ich versuche, es zu chrome://extensions/ zu testen, dem Hinzufügen und auf laden entpackten Erweiterung klicken ... im Entwicklermodus, es funktioniert nicht.

Das ist mein app.js mit ajax Aufruf:

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); 

Und meine manifest.json Datei:

{ 
    "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: Added https zu manifest.json Datei und der Fehler weiterhin besteht. das Popup Inspizieren bekam ich folgende Fehlermeldung:

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

Ihr Manifest hat keine Berechtigungen für 'https'. – wOxxOm

+0

Aktualisiert und der Fehler bleibt bestehen. Siehe meine Bearbeitung – Lioo

Antwort

1

Versuche Zugabe:

"converted_from_user_script": true, 

Nach Version in Ihrem manifest.json.

Dies ist eher ein Hack als eine legitime Lösung, aber es ist in Ordnung, wenn Sie diese Erweiterung für sich selbst entwickeln oder einfach nur lernen.

+0

Danke !! Das hat das Problem gelöst! Kann ich fragen, was dieser Parameter in 'manifest' macht? Oh, eine Anmerkung: ** Das Ändern des 'Datatyps 'in' json' hat die 'json' Antwort auch an mich zurückgegeben, aber nur wenn ich nicht bei' localhost' ** bin. Ich weiß nicht warum. – Lioo

+1

Es gibt nicht viele Informationen dazu, aber Sie können [this] (https://wiki.greasespot.net/Cross-browser_userscripting) lesen, um zu verstehen, woher es kommt. Wie ich schon sagte, ist das eher ein Hack als eine legitime Lösung. Froh, dass ich helfen konnte. – PredatorIWD

Verwandte Themen