Ho problemi a caricare ed eseguire js-script esterni nella mia estensione chrome. Sembra lo stesso di this question, ma non riesco ancora a capire perché non funziona nel mio caso.Estensione Chrome: carica ed esegui script esterno
L'idea è che voglio avere nel mio script di contenuto una funzione predefinita che dovrebbe analizzare un contenuto di una pagina web. E per alcune pagine Web specifiche voglio caricare e utilizzare parser specifici, quindi cerco di caricare js-script corretto per una pagina wep e questo script estende la funzionalità del parser predefinito.
Ormai provo solo eseguire codice script esterno, ma hanno tale errore: Unchecked runtime.lastError while running tabs.executeScript: No source code or file specified at Object.callback
Questo è il mio manifest.json:
{
"name": "Extension name",
"version": "1.2",
"description": "My chrome extension",
"browser_action": {
"default_popup": "popup.html",
},
"content_scripts": [{
"css": [
"style.css"
],
"js": [
"bower_components/jquery/dist/jquery.js",
"bower_components/bootstrap/dist/js/bootstrap.js",
"content.js"
],
"matches": ["*://*/*"]
}],
"web_accessible_resources": [
"frame.html",
"logo-48.png"
],
"icons": {
"16": "logo-16.png",
"48": "logo-48.png",
"128": "logo-128.png"
},
"permissions": [
"tabs",
"storage",
"http://*/",
"https://*/"
],
"manifest_version": 2
}
Questo è popup .html
<!doctype html>
<html>
<head>
<title>Title</title>
<script src="popup.js"></script>
</head>
<body>
<ul>
<li>Some link</li>
</ul>
</body>
</html>
E in popup.js eseguo scrip come questo:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {file: "http://127.0.0.1:8000/static/plugin/somesite.js"});
});
Cosa sto dong sbagliato, mi sono perso qualcosa? O dovrei usare un altro approccio per risolvere il problema?
Osservazione (non collegata al tuo errore): '" http: // */"' corrisponde SOLO alle pagine di livello superiore. Puoi "" "' per un permesso generico o '" activeTab "' se hai solo bisogno di accedere alla scheda corrente. –
Xan
C'è un motivo per cui non è possibile caricare 'somesite.js' nella tua estensione? – Teepeemm
Per catturare lastError, vedere https://stackoverflow.com/a/45603880/632951 – Pacerier